Метод 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"];

      }

}

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

1 ответ

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

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

Другие вопросы по тегам