Требуется объявление метода NSSLider (SliderDidMove), не найденное в документации Apple разработчика

StackOverflow https://stackoverflow.com/questions/9350319

  •  27-10-2019
  •  | 
  •  

Вопрос

Работа над учебником с NSSLider.

Что я хочу: Перемещение слайдера покажет значение слайдера в nstextfield.

Учебник объясняет, что следующий метод будет отображать значение слайдера в текстовом поле:

- (IBAction)sliderDidMove:(id)sender {
    NSSlider *slider = sender;
    double value = [slider doubleValue];
    [sliderValueLabel setDoubleValue:value];    
}

Метод не работает, поэтому я пытался найти объявление метода на веб -сайте разработчиков Apples, но не смог его найти. Из моего понимания метод: SliderDidMove Метод класса из класса NSSlider, так почему я не могу найти документацию?

Это было полезно?

Решение

При изменении значения слайдера он отправляет -[NSControl action] к его -[NSControl target]. Анкет Таким образом, в интерфейсном строителе вам нужно CTRL-DRAG от ползунка до объекта, у которого есть sliderDidMove: (Это, вероятно, будет либо делегатом приложения, либо владельцем файла). Имя выбирается автором учебника, это может быть что угодно.

В качестве альтернативы, вы можете настроить его программно:

[slider setTarget:self]; // assume the handler is [self sliderDidMove:]
[slider setAction:@selector(sliderDidMove:)];

Также обратите внимание, что эта конкретная задача лучше решена при привязках: свяжите значение как слайдера, так и метки с double Свойство какого -то объекта, и какао сохранит их синхронизировать.

Другие советы

В Swift ...

 // Somewhere maybe in viewDidLoad ...
        slider.target = self
        slider.action = #selector(sliderDidMove)



// Later on..

func sliderDidMove(){
    print("The slider moved!")
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top