7

我正在 Cocoa 中开发一个简单的应用程序,我想检测是否有任何应用程序以全屏模式运行。这可能吗?

通过 runningApplications API,我可以获得各种信息,但没有与全屏模式相关的特定属性。有谁知道如何检测它?是否有任何碳事件或 API?

4

3 回答 3

3

我在春天遇到了这个问题,并花了很长时间试图让它发挥作用。我最终将我的代码打包成一个小 GitHub 项目,但我完全忘记在这里分享它。

https://github.com/shinypb/FullScreenDetector

希望这对某人有用。

于 2013-11-19T04:48:27.763 回答
2

无论如何,在尝试了这么多选项并深入研究 NSWorkspace 之后,我找到了实现这一目标的方法,他们是通知

“NSWorkspaceActiveSpaceDidChangeNotification”

苹果文档说“在空间发生变化时发布”。所以通过使用我们可以注册它。除此之外,我们需要使用 NSWindow 的属性 "isOnActiveSpace" ,因此我们可以检测应用程序何时进入全屏模式并退出。

于 2013-04-09T06:58:24.783 回答
2

您想要键值观察-[NSApplication currentSystemPresentationOptions]。当活动应用程序处于全屏模式时,该属性将包括NSApplicationPresentationFullScreen.

于 2013-11-19T05:17:07.973 回答