macos - 如何检测对任何窗口标题栏的点击?

标签 macos event-handling nswindow osx-lion

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

最佳答案

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

关于macos - 如何检测对任何窗口标题栏的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7185209/

相关文章:

vb.net - 如何在调用和事件 VB.net 时传递附加参数

android - 按下轨迹球的 'on' 按钮时调用哪个 'Select' 方法?

cocoa - 从顶部调整 NSWindow 的大小

objective-c - 创建自定义 NSWindow 界面

javascript - JQM点击事件委托(delegate): Multiple result for Datepicker with JQM Datebox & SimpleDialog

objective-c - cocoa /界面生成器 : What do I need to subclass to replicate this window?

macos - 右键单击 TableViewCell 时显示 popOver

macos - 什么时候使用NSOperationQueue的mainQueue,什么时候创建新队列?

objective-c - CoreAnimation 未提交 CATransaction 警告

objective-c - 应用程序卡在 runModalForWindow 上