gpt4 book ai didi

objective-c - 如何强制 NSWindow 出现在每个应用程序的前面?甚至全屏应用程序

转载 作者:太空狗 更新时间:2023-10-30 03:47:49 27 4
gpt4 key购买 nike

我有一个 NSWindow,我想将它放在所有内容(计算机的每个应用程序、全屏应用程序等)的前面。即使我点击后台应用程序,NSWindow 也无法进入后台。并且 NSWindow 必须跟随用户屏幕,例如,如果用户将桌面切换到 desktop2,等等......我该怎么做?
谢谢!

最佳答案

如果您不需要在其他应用的全屏窗口中可见,这并不太难。

首先,为了保持领先地位,只需设置级别:使用 NSFloatingWindowLevel 或更高级别。尝试不同的值,看看哪个适合您的需求。

接下来,即使用户更改了 Spaces(可能包括 Exposé/Mission Control、setCollectionBehavior:使用适当的标志对)也能保持领先,或者如果您正在创建 Nib 中的窗口。可以加入所有空间或移动到事件空间将确保您以略有不同的方式在每个空间中保持可见。您可能希望将 Exposé 设置为 Stationary 或 Transient。再一次,两种方法都试试看。

但是,当用户切换到全屏空间或仪表板或启动板时,Lion 将隐藏所有空间和移动到事件空间窗口。如果你观察,你会发现它对三种情况中的每一种都以不同的方式做到这一点。 Snow Leopard 和 Mountain Lion 的做法略有不同。

如果你想解决最后一个问题,你需要一些 hackery 和针对每种情况和每个操作系统版本的不同形式的 hackery。基本技巧是捕捉与隐藏相关的通知并在适当的时候取消隐藏。

关于objective-c - 如何强制 NSWindow 出现在每个应用程序的前面?甚至全屏应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com