我正在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