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_Nswindow_Growl - Fatal编程技术网

Objective c 窗口级别的咆哮通知

Objective c 窗口级别的咆哮通知,objective-c,cocoa,nswindow,growl,Objective C,Cocoa,Nswindow,Growl,我正在写一个通知系统,就像咆哮一样。通知是一个窗口,其级别设置为NSModalPanelWindowLevel。唯一的问题是,我在该窗口中有一个按钮,当用户想要单击该按钮时,他/她必须单击两次。但是,例如,在咆哮中,无论您打开了哪个窗口,您只需单击通知,它就会注册一次单击。 那么这是一个水平问题吗?如果是,我应该将其设置为什么?谢谢我不确定Growl是否会这样做,但您可以在窗口中侦听鼠标悬停事件,并在单击之前使用它们来激活/停用窗口。我怀疑你的问题是第一次点击被激活的窗口吃掉了 不过这只是一个猜

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

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

不过这只是一个猜测

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


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

讨论

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

在子类中将此方法重写为 允许实例响应 点击浏览。这允许用户 单击非活动窗口中的视图, 单击一下即可激活视图, 而不是先单击以使 窗口处于活动状态,然后单击 看法大多数视图对象拒绝 单击“通过尝试”,使事件 只需激活窗口即可。许多的 但是,控制对象,例如
NSButton
NSSlider
的实例 接受它们,这样用户就可以 立即操纵控件 不需要释放鼠标 按钮


如果可能的话,请不要重复咆哮。已经安装了Growl并且有多个应用程序在使用它的用户不会感谢您创建了另一个通知窗口来抹去他们已经看到的任何内容。我的目标不是重复Growl…我只是不想让我的用户依赖Growl,这只适用于我的应用程序。我喜欢Growl,我没有理由复制它…当然,但是,请确保对于安装了Growl的用户,您使用它,而不是在显示器上粘贴其他类似Growl的弹出窗口。否则,你会用你的通知抹掉咆哮中的通知(可能反之亦然)。谢谢你的建议。我会记住这一点。