开发者

Growl notification like nswindow level

开发者 https://www.devze.com 2023-02-24 06:12 出处:网络
I am writing a notification system just like growl. The notification is a window and it\'s level is set to NSModalPanelWindowLevel. The only problem is, I have a button in that window and when the use

I am writing a notification system just like growl. The notification is a window and it's level is set to NSModalPanelWindowLevel. The only problem is, I have a button in that window and when the user wants to click that button, he/she has to click it twice. But, for example, in growl, no matter what window you have opened, y开发者_开发知识库ou just simply click the notification and it registers a click. So is it a level problem? If so, what should I set it to? Thanks


In your custom controls that make up the view content of the window, you will likely want to override NSView's -acceptsFirstMouse: method to return YES:

Discussion

The receiver can either return a value unconditionally or use the location of theEvent to determine whether or not it wants the event. The default implementation ignores theEvent and returns NO.

Override this method in a subclass to allow instances to respond to click-through. This allows the user to click on a view in an inactive window, activating the view with one click, instead of clicking first to make the window active and then clicking the view. Most view objects refuse a click-through attempt, so the event simply activates the window. Many control objects, however, such as instances of NSButton and NSSlider, do accept them, so the user can immediately manipulate the control without having to release the mouse button.


Not sure if this is what Growl does, but you might be able to listen for mouse over events in the window and use them to activate/deactivate the window prior to the click. I suspect your issue is that the first click is being eaten by the activation of the window.

Just a guess on that though.

To learn how to handle mouse over events, check out this documentation:

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

0

精彩评论

暂无评论...
验证码 换一张
取 消