在mac上检测全屏应用程序

san*_*alc 6 macos cocoa macos-carbon fullscreen nsapplication

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

通过运行应用程序API,我可以获得各种信息,但没有与全屏模式相关的特定属性.有谁知道如何检测它?这有碳事件或API吗?

san*_*alc 2

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

“NSWorkspaceActiveSpaceDidChangeNotification”

Apple 文档显示“在发生 Spaces 更改时发布”。所以通过使用我们可以注册它。除此之外,我们还需要使用 NSWindow 的属性“isOnActiveSpace”,这样我们就可以检测应用程序何时进入全屏模式并退出。

  • 空间变化不仅仅发生在应用程序进入或退出全屏模式时。用户可以拥有任意多个非全屏空间。您计划测试哪个窗口的“-isOnActiveSpace”? (2认同)