2012-11-24 46 views
0

我知道有可能使NSWindow無法使用。應用程序不可隱藏

但是,是否有可能,是否有一個屬性,告訴編譯器使整個應用程序不可隱藏?

+1

不,你爲什麼要這麼做? – duskwuff

+0

@duskwuff,也許他想製作一個守護進程....或者是病毒 – CodaFi

+0

如果你試圖製作一個真正的守護進程,它將不會作爲應用程序公開。或者,如果它是一個後臺應用程序,則有'NSUIElement'。 – duskwuff

回答

0

我認爲最簡單的方法來模擬這種行爲,因爲我沒有看到一個屬性來做到這一點,是從菜單欄中刪除Hide行動。因爲那控制着命令 + H快捷方式。但是,如果你有一個碼頭圖標,用戶可以右鍵單擊它並將其隱藏在那裏。因此,您可以回覆NSApplicationDelegate'sapplicationWillHide:applicationDidHide:方法,然後再次顯示您的應用程序。雖然我不認爲這聽起來像是一個很好的用戶體驗。

0

對於單個窗口,您使用-[NSWindow setCanHide:]來控制它是否可以隱藏。

如果要禁用完全隱藏,則可能需要子類NSApplication覆蓋hide且爲空實現。我從來沒有嘗試過這一點,但我沒有看到任何沒有麻煩的理由。當然你也應該從主菜單中刪除「隱藏」選項。 (請注意,僅僅這樣做是不夠的,因爲你仍然會迴應其他應用程序發送hideOtherApplications:。)