2011-11-29 37 views
4

是否有公共Apple API允許您在運行時刪除應用程序的停靠欄圖標? 我試圖通過NSApplication的dockTile替換零大小的空視圖,但只是刪除停靠欄圖標而不回收它的空間和啓動指示器。我也知道應用程序的info.plist中的LSUIElement參數,但是這個值只在啓動時被評估。它不是運行時參數。在運行時從碼頭添加/刪除應用程序圖標?

+2

從來沒有見過一個單一的應用程序做到這一點。你認爲這是一個好主意嗎?作爲用戶,我肯定不喜歡它。好的問題,tho,所以+1 – 2011-11-29 20:14:46

+0

意見很可能是分歧的問題。但是這裏有商業示例:Sparrow允許用戶選擇應用程序是否具有菜單圖標,停靠圖標或兩者。但是,要從塢中移除其圖標,需要重新啓動應用程序。這使我相信他們在plist中使用NSUIElement布爾值。 – ctpenrose

回答

4

這是一條單向的街道:您可以將您的應用設置爲NSUIElement以隱藏停靠欄圖標,然後撥打[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];將其顯示在停靠欄中,但是一旦它在那裏就無法刪除。因此,您可以讓停靠欄圖標爲用戶可配置的,但您必須重新啓動應用以隱藏圖標。


編輯

您可以撥打setActivationPolicy:NSApplicationActivationPolicyProhibited再次隱藏停靠圖標 - user1592530年09月18在'12 14:21

的評論是正確的。作品兩種方式時下 - Daij-Djan 12月24日在'12 11:46


+0

如果任何人需要Snow Leopard解決方案,Carbon API'TransformProcessType'與[NSApplication setActivationPolicy:]'(包括僅在一個方向上工作)做同樣的事情。 – JWWalker

+0

謝謝,這似乎是最好的,可以做到。 – ctpenrose

+4

您可以撥打 'setActivationPolicy:NSApplicationActivationPolicyProhibited' 再次隱藏dock-icon – 2012-09-18 14:21:09

相關問題