使用colorwell的IBAction方法

时间:2014-06-16 20:05:21

标签: objective-c state ibaction nscolorwell

我有一个颜色井,当点击时会触发IBAction方法。在那里,我检查选择的新颜色是否与事件的默认颜色不同,如果是,我向用户显示一个工作表对话框,提醒他们。

我遇到的问题是每次移动控件(如滑块)时,颜色选择器都会调用操作方法。这导致动作方法被调用n次而不是一次,我必须回复该对话n次。

在IB中,有一个连续状态的复选框。如果我不加以控制,它根本不会调用动作方法。大多数滑块控件允许您在连续状态或单个状态之间进行选择,但我没有看到这个颜色选项。

任何建议表示赞赏;

简单代码:

-(IBAction)colorwellManager{

      if([self shouldAlertUser] == YES){

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

      }

}

如果在颜色选择器上移动滑块,则此代码会执行多次。

1 个答案:

答案 0 :(得分:0)

我发现我对这里发生的事情有很好的解释:

NSColorPanel blocking mouse up events(第二个答案) 除了取消选中IB中的colorwell的连续状态复选框之外,底层类(NSColorPanel)需要将其setContinuous设置为NO以编程方式设置为NO。这允许颜色很好地每次操作只调用一次动作方法。