我尝试创建一个停靠在OS X菜单栏下方屏幕顶部的工具栏。
我希望没有其他应用程序能够在最大化时重叠我的应用程序。我可以使用NSScreen的visibleframe方法获得可见的帧尺寸,但我可以调整visibleframe以省略应用程序的大小和位置吗?
答案 0 :(得分:4)
简单的答案是,不,你不能。我认为改变屏幕visibleRect
的唯一方法是将代码注入AppKit并调整方法。
即使这样,它可能也不会做你想要的,因为这种方法可能不是Apple用来确定windows的“安全区域”的方法,而且几乎肯定不适用于Carbon应用程序。
您对窗口级别的任何操作都不会改变这一点。
可以做的是使用辅助功能框架重新定位窗口,如果您检测到它们的帧已更改,以便它们与工具栏窗口重叠。不幸的是,我认为您可能需要使用轮询。
答案 1 :(得分:1)
尝试将窗口级别设置为NSDockWindowLevel
。
这可能不起作用,取决于系统是否减去该级别上的所有窗口,或者只是Dock的窗口,但是值得一试。