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

objective-c – 如何强制NSWindow在每个应用程序前面?甚至是全屏应用,第1张

概述我有一个NSWindow,我想在所有东西面前(计算机的每个应用程序,全屏应用程序等).即使我点击后台应用程序,NSWindow也无法进入后台.例如,如果用户将桌面切换到桌面2,则NSWindow必须遵循用户屏幕,依此类推…… 我怎样才能做到这一点? 谢谢! 如果你不需要在其他应用程序的全屏窗口中看到它,那就不难了. 首先,要保持在其他所有方面,只需使用setLevel:使用NSFloatingWi 我有一个NSWindow,我想在所有东西面前(计算机的每个应用程序,全屏应用程序等).即使我点击后台应用程序,NSWindow也无法进入后台.例如,如果用户将桌面切换到桌面2,则NSWindow必须遵循用户屏幕,依此类推……
我怎样才能做到这一点?
谢谢!解决方法 如果你不需要在其他应用程序的全屏窗口中看到它,那就不难了.

首先,要保持在其他所有方面,只需使用setLevel:使用NSfloatingWindowLevel或更高版本.尝试使用不同的值来查看哪些值符合您的需求.

接下来,即使用户更改Spaces(可能包括Exposé/ Mission Control,setCollectionBehavior :)和适当的标志对,也可以保持在前面,或者如果您正在创建窗口中,请使用Attributes Inspector中相应的Spaces和Exposé设置.笔尖.无论是加入所有空间还是移动到活动空间都可以确保您以不同的方式在每个空间中保持可见.您可能希望Exposé设置为固定,或者也可能是TransIEnt.再次,尝试两种方式,看看.

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

如果你想解决最后一个问题,你需要为每个案例和每个 *** 作系统版本提供一些Hackery和不同形式的Hackery.基本技巧是捕捉与隐藏相关的通知,并在适当的时候取消隐藏.

总结

以上是内存溢出为你收集整理的objective-c – 如何强制NSWindow在每个应用程序前面?甚至是全屏应用全部内容,希望文章能够帮你解决objective-c – 如何强制NSWindow在每个应用程序前面?甚至是全屏应用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1015314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存