【发布时间】:2011-08-25 04:36:56
【问题描述】:
我想在 NSWindow 上检测鼠标向下。事实上,我希望通过检测对任何 NSWindow 标题栏的点击来为整个系统添加功能。但是,我看不到访问 NSWindow 中的标题栏或 chrome 之类的东西。我想我可以监听任何点击并根据窗口的大小和位置进行数学运算以检测点击是否在标题栏中,但我想知道是否有更好的方法。谢谢!
【问题讨论】:
标签: macos event-handling nswindow osx-lion
我想在 NSWindow 上检测鼠标向下。事实上,我希望通过检测对任何 NSWindow 标题栏的点击来为整个系统添加功能。但是,我看不到访问 NSWindow 中的标题栏或 chrome 之类的东西。我想我可以监听任何点击并根据窗口的大小和位置进行数学运算以检测点击是否在标题栏中,但我想知道是否有更好的方法。谢谢!
【问题讨论】:
标签: macos event-handling nswindow osx-lion
您需要在窗口框架上监听 mouseDown 事件。窗口的框架隐藏在 [[window contentView] superview] 下。您可以继承 NSWindow 并创建自己的框架 NSView 实现(我认为这有点工作),或者尝试用自己的方法替换 mouseDown 方法。在这里http://parmanoir.com/Custom_NSThemeFrame 展示了如何为drawRect 方法做这样的事情。希望对您有所帮助。
【讨论】: