Метод IBAction с colorwell

У меня есть colorwell, который при нажатии срабатывает на метод IBAction. Там я проверяю, отличается ли выбранный новый цвет от цвета по умолчанию для события, и если это так, я показываю диалоговое окно листа пользователю, предупреждая его об этом.

Проблема, с которой я сталкиваюсь, заключается в том, что средство выбора цвета вызывает метод действия каждый раз, когда перемещается элемент управления, например ползунок. Это приводит к тому, что метод действия вызывается n раз вместо одного, и мне приходится отвечать на диалог n раз.

В IB есть флажок для непрерывного состояния. Если я оставлю его непроверенным, он вообще не вызовет метод действия. Большинство элементов управления ползунком позволяют выбирать между непрерывным состоянием или одиночным состоянием, но я не вижу этого параметра для области цвета.

Любые советы приветствуются;

Простой код:

-(IBAction)colorwellManager{

      if([self shouldAlertUser] == YES){

         [self dialog:@"Your are about to change the default color" @"Confirm Button"];

      }

}

Если ползунок перемещается в палитре цветов, этот код выполняется много раз.


person Miek    schedule 16.06.2014    source источник


Ответы (1)


Я нашел хорошее объяснение тому, что здесь происходит:

NSColorPanel блокирует события мыши вверх (второй ответ) Базовый класс (NSColorPanel) должен иметь это setContinuous программно установлено в НЕТ в дополнение к снятию флажка непрерывного состояния colorwell в IB. Это позволяет области цвета вызывать метод действия только один раз для каждого действия.

person Miek    schedule 18.06.2014