像nswindow级别一样的Growl通知

时间:2011-04-13 22:08:16

标签: objective-c cocoa nswindow growl

我正在写一个像咆哮一样的通知系统。通知是一个窗口,它的级别设置为NSModalPanelWindowLevel。唯一的问题是,我在该窗口中有一个按钮,当用户想要单击该按钮时,他/她必须单击两次。但是,例如,在咆哮声中,无论您打开什么窗口,只需单击通知即可注册单击。 这是一个水平问题吗?如果是这样,我应该将它设置为什么?感谢

2 个答案:

答案 0 :(得分:2)

在构成窗口视图内容的自定义控件中,您可能希望覆盖NSView的{​​{3}}方法以返回YES

  

<强>讨论

     

接收器可以   无条件地返回值或使用   要确定theEvent的位置   是否想要这个活动。该   默认实现忽略   theEvent并返回NO

     

在子类中覆盖此方法   允许实例响应   通过点击。这允许用户   单击非活动窗口中的视图,   只需单击一下即可激活视图   而不是先点击进行   窗口激活然后单击   视图。大多数视图对象拒绝a   点击尝试,所以事件   只需激活窗口。许多   然而,控制对象,例如   NSButtonNSSlider的实例   接受他们,所以用户可以   立即操纵控件   无需释放鼠标   按钮。

答案 1 :(得分:0)

不确定这是否是Growl的功能,但您可以在窗口中侦听鼠标悬停事件,并在点击之前使用它们激活/停用窗口。我怀疑你的问题是第一次点击被激活窗口吃掉了。

虽然只是猜测。

要了解如何处理鼠标悬停事件,请查看此文档:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/TrackingAreaObjects/TrackingAreaObjects.html