如何使 NSWindow 中的按钮在工作表上时可点击
Posted
技术标签:
【中文标题】如何使 NSWindow 中的按钮在工作表上时可点击【英文标题】:How make button in NSWindow clickable while a sheet's on top of it 【发布时间】:2012-12-06 18:28:23 【问题描述】:我创建了一个自定义(主题)NSWindow,方法是创建一个无边框窗口,然后在内容视图内重新创建窗口边框/背景的所有元素。我使用 -standardWindowButton:forStyleMask: 在我自己的假标题栏上创建了窗口小部件(关闭框、缩放框、最小化框)。
问题是,当我的自定义窗口顶部显示工作表时(例如“保存更改...”,这些按钮不会收到点击。
有人知道我如何告诉 NSWindow 不要拦截最小化框中的点击吗?它适用于标准的 NSWindow。当一张表打开时,我仍然可以将它们都发送到 Dock,或者缩小窗口。
【问题讨论】:
【参考方案1】:我认为内容视图中的特殊代码可能会在工作表打开时忽略子视图中的点击。但似乎 -hitTest: is 在内容视图上调用并返回最小化小部件,但小部件的操作从未被触发。
如果它是最小化小部件,我想我可以替换内容视图并在内容视图的 hitTest 中执行操作......但这看起来有点难看。
【讨论】:
如果这正是 Apple 的做法,我不会感到惊讶。以上是关于如何使 NSWindow 中的按钮在工作表上时可点击的主要内容,如果未能解决你的问题,请参考以下文章
当鼠标悬停在 DIV 上时,如何使某些控件可见并与 DIV 重叠? [关闭]
VC 如何使鼠标悬停在按钮上时,按钮以高亮显示。代码不要用MFC,一定用SDK。