Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使按钮在点击时不触发其动作?_Objective C_Cocoa_User Interface_Nsbutton_Click Through - Fatal编程技术网

Objective c 如何使按钮在点击时不触发其动作?

Objective c 如何使按钮在点击时不触发其动作?,objective-c,cocoa,user-interface,nsbutton,click-through,Objective C,Cocoa,User Interface,Nsbutton,Click Through,苹果人机界面指南: 提供点击的项目是一个用户可以通过点击在非活动窗口上激活的项目,而不是先点击使窗口处于活动状态,然后再点击该项目。单击可提高执行关闭或调整非活动窗口以及复制或移动文件等任务的效率。然而,在许多情况下,点击可能会让无意中点击某个项目的用户感到困惑 及 不要为以下项目或操作提供点击: 可能有害,不允许用户取消(例如,邮件中的“删除”按钮) 很难或不可能取消(如邮件中的“发送”按钮) 取消对话框,但不告诉用户采取了什么操作(例如,保存对话框中的“保存”按钮会覆盖现有文件并自动取消对

苹果人机界面指南:

提供点击的项目是一个用户可以通过点击在非活动窗口上激活的项目,而不是先点击使窗口处于活动状态,然后再点击该项目。单击可提高执行关闭或调整非活动窗口以及复制或移动文件等任务的效率。然而,在许多情况下,点击可能会让无意中点击某个项目的用户感到困惑

不要为以下项目或操作提供点击:

  • 可能有害,不允许用户取消(例如,邮件中的“删除”按钮)
  • 很难或不可能取消(如邮件中的“发送”按钮)
  • 取消对话框,但不告诉用户采取了什么操作(例如,保存对话框中的“保存”按钮会覆盖现有文件并自动取消对话框)
  • 从当前上下文中删除用户(例如,在查找器列中选择新项可以更改查找器窗口的目标)

我想做的是,如果用户单击某个特定按钮,除非窗口处于活动状态(例如,Mail中的delete message按钮),否则不会发送其消息。我怎样才能做到这一点?如果需要对NSButton进行子类化,这很好。

请查看NSView文档:

:

您需要覆盖
acceptsFirstMouse
以返回
TRUE
以启用点击

默认行为不是单击通过:

默认实现忽略事件并返回NO


您可能已经在代码或基于代码的代码中重写了此方法。尝试删除代码中的
acceptsFirstMouse
实现。

查看NSView文档:

:

您需要覆盖
acceptsFirstMouse
以返回
TRUE
以启用点击

默认行为不是单击通过:

默认实现忽略事件并返回NO


您可能已经在代码或基于代码的代码中重写了此方法。尝试删除代码中的
acceptsFirstMouse
实现。

重写它以返回
NO
成功,而不是
TRUE
。我希望它在点击时不做任何事情。重写它以返回
NO
成功了,而不是
TRUE
。我希望它不做任何事点击通过。