我有一个颜色井,当点击时会触发IBAction方法。在那里,我检查选择的新颜色是否与事件的默认颜色不同,如果是,我向用户显示一个工作表对话框,提醒他们。
我遇到的问题是每次移动控件(如滑块)时,颜色选择器都会调用操作方法。这导致动作方法被调用n次而不是一次,我必须回复该对话n次。
在IB中,有一个连续状态的复选框。如果我不加以控制,它根本不会调用动作方法。大多数滑块控件允许您在连续状态或单个状态之间进行选择,但我没有看到这个颜色选项。
任何建议表示赞赏;
简单代码:
-(IBAction)colorwellManager{
if([self shouldAlertUser] == YES){
[self dialog:@"Your are about to change the default color" @"Confirm Button"];
}
}
如果在颜色选择器上移动滑块,则此代码会执行多次。
答案 0 :(得分:0)
我发现我对这里发生的事情有很好的解释:
NSColorPanel blocking mouse up events(第二个答案) 除了取消选中IB中的colorwell的连续状态复选框之外,底层类(NSColorPanel)需要将其setContinuous设置为NO以编程方式设置为NO。这允许颜色很好地每次操作只调用一次动作方法。