我正在Cocoa中开发一个简单的应用程序,并且我想检测是否有任何应用程序正在全屏模式下运行。这可能吗?检测Mac上的全屏应用程序
通过运行应用程序API,我可以获得各种信息,但没有与全屏模式相关的特定属性。有谁知道如何检测它?有没有碳事件或API?
我正在Cocoa中开发一个简单的应用程序,并且我想检测是否有任何应用程序正在全屏模式下运行。这可能吗?检测Mac上的全屏应用程序
通过运行应用程序API,我可以获得各种信息,但没有与全屏模式相关的特定属性。有谁知道如何检测它?有没有碳事件或API?
不管怎么说尝试了这么多的选择和挖掘到NSWorkspace我已经找到方法,通过它我们可以实现在此之后他们是通知
“NSWorkspaceActiveSpaceDidChangeNotification”
苹果医生说“发布时,空间变化发生。”所以通过使用我们可以注册。与此同时,我们需要使用NSWindow的属性“isOnActiveSpace”,所以我们可以检测到应用程序何时进入全屏模式并退出。
我在春天遇到了这个问题,并一直试图让它工作。我最终把我的代码打包成一个小GitHub项目,但我完全忘了在这里分享它。
https://github.com/shinypb/FullScreenDetector
希望这是有用的人。
你想要键值观察-[NSApplication currentSystemPresentationOptions]
。当活动应用处于全屏模式时,该属性将包括NSApplicationPresentationFullScreen
。
类似于http://stackoverflow.com/questions/7138194/mac-os-x-lion-detect-if-another-application-is-running-in-full-screen-mode?rq=1 – Jay 2013-04-08 08:54:42
@周杰伦感谢指向这些链接,我有一个更多的查询,如果任何应用程序正在全屏模式下运行,并且如果任何其他应用程序提出警报消息会发生什么?以及OSD会发生什么,就像烤面包的信息显示类似于苹果的更新可用功能..你可以帮我找出答案。 – 2013-04-08 10:07:47
嗯,你可能想激活你的应用程序,让警报显示在http://stackoverflow.com/questions/5269116/make-a-nsalert-the-topmost-window?rq=1? – Jay 2013-04-08 11:44:41