2013-04-08 18 views
6

我正在Cocoa中開發一個簡單的應用程序,並且我想檢測是否有任何應用程序正在全屏模式下運行。這可能嗎?檢測Mac上的全屏應用程序

通過運行應用程序API,我可以獲得各種信息,但沒有與全屏模式相關的特定屬性。有誰知道如何檢測它?有沒有碳事件或API?

+1

類似於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

+0

@周杰倫感謝指向這些鏈接,我有一個更多的查詢,如果任何應用程序正在全屏模式下運行,並且如果任何其他應用程序提出警報消息會發生什麼?以及OSD會發生什麼,就像烤麪包的信息顯示類似於蘋果的更新可用功能..你可以幫我找出答案。 – 2013-04-08 10:07:47

+0

嗯,你可能想激活你的應用程序,讓警報顯示在http://stackoverflow.com/questions/5269116/make-a-nsalert-the-topmost-window?rq=1? – Jay 2013-04-08 11:44:41

回答

2

不管怎麼說嘗試了這麼多的選擇和挖掘到NSWorkspace我已經找到方法,通過它我們可以實現在此之後他們是通知

「NSWorkspaceActiveSpaceDidChangeNotification」

蘋果醫生說「發佈時,空間變化發生。」所以通過使用我們可以註冊。與此同時,我們需要使用NSWindow的屬性「isOnActiveSpace」,所以我們可以檢測到應用程序何時進入全屏模式並退出。

+0

我試圖將觀察者添加到「NSWorkspaceActiveSpaceDidChangeNotification」通知中。但它只能在調試模式下工作。發佈模式有沒有系統限制? – Gon 2013-10-31 07:39:49

+0

這是從10.6及更高版本可用。一次交叉檢查..其他不是任何resrtiction這樣直接它應該工作 – 2013-11-09 09:49:42

+0

奇怪。我會深入研究它。 – Gon 2013-11-13 07:51:40

2

你想要鍵值觀察-[NSApplication currentSystemPresentationOptions]。當活動應用處於全屏模式時,該屬性將包括NSApplicationPresentationFullScreen

相關問題