0

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

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

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

任何建议表示赞赏;

简单代码:

-(IBAction)colorwellManager{

      if([self shouldAlertUser] == YES){

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

      }

}

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

4

1 回答 1

0

我发现我很好地解释了这里发生的事情:

NSColorPanel 阻止鼠标向上事件 (第二个答案)除了在 IB 中取消选中 colorwell 的连续状态复选框外,基础类(NSColorPanel)还需要以编程方式将其 setContinuous 设置为 NO。这允许颜色井在每个操作中仅调用一次操作方法。

于 2014-06-18T19:06:28.817 回答