我正在写一个像咆哮一样的通知系统。通知是一个窗口,它的级别设置为NSModalPanelWindowLevel。唯一的问题是,我在该窗口中有一个按钮,当用户想要单击该按钮时,他/她必须单击两次。但是,例如,在咆哮声中,无论您打开什么窗口,只需单击通知即可注册单击。 这是一个水平问题吗?如果是这样,我应该将它设置为什么?感谢
答案 0 :(得分:2)
在构成窗口视图内容的自定义控件中,您可能希望覆盖NSView
的{{3}}方法以返回YES
:
<强>讨论强>
接收器可以 无条件地返回值或使用 要确定
theEvent
的位置 是否想要这个活动。该 默认实现忽略theEvent
并返回NO
。在子类中覆盖此方法 允许实例响应 通过点击。这允许用户 单击非活动窗口中的视图, 只需单击一下即可激活视图 而不是先点击进行 窗口激活然后单击 视图。大多数视图对象拒绝a 点击尝试,所以事件 只需激活窗口。许多 然而,控制对象,例如
NSButton
和NSSlider
的实例 接受他们,所以用户可以 立即操纵控件 无需释放鼠标 按钮。
答案 1 :(得分:0)
不确定这是否是Growl的功能,但您可以在窗口中侦听鼠标悬停事件,并在点击之前使用它们激活/停用窗口。我怀疑你的问题是第一次点击被激活窗口吃掉了。
虽然只是猜测。
要了解如何处理鼠标悬停事件,请查看此文档: