我在Cocoa中开发一个简单的应用程序,我想检测是否有任何应用程序以全屏模式运行。这可能吗?
通过运行应用程序API,我可以获得各种信息,但没有与全屏模式相关的特定属性。有谁知道如何检测它?是否有碳事件或API?
答案 0 :(得分:3)
我在春天碰到了这个,并且花了很多时间试图让它发挥作用。我最终将我的代码打包成一个小GitHub项目,但我完全忘了在这里分享它。
https://github.com/shinypb/FullScreenDetector
希望这对某人有用。
答案 1 :(得分:2)
无论如何,在尝试了这么多选项并深入研究NSWorkspace后,我找到了通过这种方式实现这一目标的通知
“NSWorkspaceActiveSpaceDidChangeNotification”
Apple doc说“发生空间变化后发布”。所以通过使用我们可以注册它。与此同时,我们需要使用NSWindow的属性“isOnActiveSpace”,因此我们可以检测应用程序何时进入全屏模式并退出。
答案 2 :(得分:2)
您想要键值观察-[NSApplication currentSystemPresentationOptions]
。当活动应用处于全屏模式时,该属性将包含NSApplicationPresentationFullScreen
。