使用colorwell的IBAction方法



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

我遇到的问题是,颜色选择器每次移动滑块等控件时都会调用action方法。这将导致action方法被调用n次而不是一次,并且我必须响应对话框n次。

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

欢迎指教;

简单代码:

-(IBAction)colorwellManager{
      if([self shouldAlertUser] == YES){
         [self dialog:@"Your are about to change the default color" @"Confirm Button"];
      }
}

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

我找到了一个很好的解释这里发生的事情:

NSColorPanel阻塞鼠标up事件(第二个答案)除了在IB中取消选中colorwell的连续状态复选框外,底层类(NSColorPanel)还需要通过编程将其setContinuous设置为NO。这允许colorwell在每个动作中只调用一次action方法。

相关内容

  • 没有找到相关文章

最新更新