我正在使用Cocoa开发一个简单的应用程序,想要检测是否有任何应用程序在全屏模式下运行。这是否可能?
通过运行Applications API,我可以获取各种信息,但没有与全屏模式相关的特定属性。有人知道如何检测它吗?是否有任何碳事件或API可用于此?
我正在使用Cocoa开发一个简单的应用程序,想要检测是否有任何应用程序在全屏模式下运行。这是否可能?
通过运行Applications API,我可以获取各种信息,但没有与全屏模式相关的特定属性。有人知道如何检测它吗?是否有任何碳事件或API可用于此?
无论如何,经过尝试多种选项并深入研究NSWorkspace,我找到了一种方法来实现这一点,即使用通知。
"NSWorkspaceActiveSpaceDidChangeNotification"
苹果文档中说:“当发生Spaces更改时发布。”因此我们可以通过使用它来进行注册。除此之外,我们还需要使用NSWindow的属性“isOnActiveSpace”,这样我们就可以检测应用程序何时进入全屏模式并退出全屏模式。
NSWorkspaceActiveSpaceDidChangeNotification
通知中。但它只在调试模式下工作。在发布模式下是否有任何系统限制? - Gon你想对-[NSApplication currentSystemPresentationOptions]
进行键值观察。当活动应用程序处于全屏模式时,该属性将包括NSApplicationPresentationFullScreen
。