如何检测任何窗口标题栏上的点击?

时间:2011-08-25 04:36:56

标签: macos event-handling nswindow osx-lion

我想在NSWindow上检测到一只老鼠。事实上,我希望通过检测任何NSWindow标题栏上的点击来为整个系统添加功能。但是,我没有看到像NSWindow这样的标题栏或镶边的东西。我想我可以听任何点击并根据窗口的大小和位置进行数学检测以确定点击是否在标题栏内,但我想知道是否有更好的方法。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要在窗口框架上侦听mouseDown事件。窗口的框架隐藏在[[window contentView] superview]下。您可以子类化NSWindow并创建自己的框架NSView实现(我认为它有点工作)或者尝试用您自己的方法替换mouseDown方法。在这里http://parmanoir.com/Custom_NSThemeFrame展示了如何为drawRect方法做这样的事情。希望它有所帮助。