понеділок, 10 березня 2014 р.

NSSlider "ползунок"

Объект NSSlider отображает диапазон значений для чего-то (какого-нибудь контрола) в приложении. Ползунки могут быть вертикальными или горизонтальными полосами или круговыми циферблатами.

Создадим форму и расположим на ней некоторые контролы интерфейса:

Добавим:
- Label;
- Slider.

В Label установим текст со значением 50 (можно любое другое или вообще никакого текста на изменять, далее будет понятно почему). Добавим слайдер, выровняем, и сделаем наши связи со следующими оутлетами:

IBOutlet NSTextField *sliderTextLabel;
IBOutlet NSSlider *slider;
Также добавим экшен на наш слайдер, который будет срабатывать при изменении ползунка слайдера:
- (IBAction)sliderChange:(id)sender;
В метод applicationDidFinishLaunching добавим следующий код инициализации нашего слайдера и нашего лейбла:
[slider setIntValue:50];
[sliderTextLabel setIntValue:[slider intValue]];
Можно установить любое значение слайдеру при инициализации. Дальше в нашем экшене-методе sliderChange напишем такие строчки кода:
[sliderTextLabel setIntValue:[slider intValue]];
При изменении местоположения ползунка будет меняться значение нашего лэйбла. Но есть один нюанс. Значение в лэйбле устанавливается (текущего значения слайдера) только тогда когда Вы остановили перемещение ползунка. Но нам бы хотелось пойти дальше и сделать более правильно, т.е. чтобы значение лэйбла менялось в реальном времени во время перемещения ползунка слайдера. Для этого нужно в Дизайнере форм пометить слайдер и в Инспекторе атрибутов в секции Control выставить чекбокс Continuous. Вот и все.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments