【问题标题】:How to detect a click on any window's title bar?如何检测对任何窗口标题栏的点击?
【发布时间】:2011-08-25 04:36:56
【问题描述】:

我想在 NSWindow 上检测鼠标向下。事实上,我希望通过检测对任何 NSWindow 标题栏的点击来为整个系统添加功能。但是,我看不到访问 NSWindow 中的标题栏或 chrome 之类的东西。我想我可以监听任何点击并根据窗口的大小和位置进行数学运算以检测点击是否在标题栏中,但我想知道是否有更好的方法。谢谢!

【问题讨论】:

    标签: macos event-handling nswindow osx-lion


    【解决方案1】:

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

    【讨论】:

    • 谢谢。这是一个很好的观点,我将进行测试。不过,我最感兴趣的是一个系统插件,可以在任何窗口上检测到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 2011-11-08
    • 2011-05-15
    • 1970-01-01
    • 2013-11-18
    • 2020-07-05
    相关资源
    最近更新 更多