2010-06-07 170 views
0

我試圖在Obj-C/Cocoa中簡單地創建一個簡單的狀態欄應用程序。Mac OS X狀態欄應用程序 - 從Cmd/Alt菜單隱藏它?

因此,我已經做到了這一點 - 聲明一個NSStatusItem,將它添加到NSStatusBar,然後給它一個NSMenu對象。像這樣的位......

NSStatusBar *bar = [NSStatusBar systemStatusBar]; 

theItem = [bar statusItemWithLength:NSVariableStatusItemLength]; 
[theItem retain]; 

[theItem setTitle: NSLocalizedString(@"Tablet",@"")]; 
[theItem setHighlightMode:YES]; 
[theItem setMenu:theMenu]; 

(從「狀態欄編程主題」,蘋果文檔拍攝的實施例)現在,理想情況下,我想這個應用程序運行,並不會從CMD訪問/ ALT窗口改變「菜單」(缺乏一個更好的詞),我見過應用程序之前做它,並希望真的。這個想法是我只想讓它在每個窗口都可以訪問,而在狀態欄上沒有自己的NSMenu,並且無法將其作爲活動應用程序( - 因此它無法接管整個狀態欄,它不能通過CMD/ALT看到)

此外,我想知道是否StatusBarItem支持拖放一個項目的能力呢?我不確定這是否是NSStatusBar的限制。

我已經閱讀了關於deamons和代理,但這似乎太低級/超過殺這樣一個簡單的應用程序!

提前歡呼!

+0

你的意思是Command-Tab功能? 而我不理解你的問題。你想要一個不是菜單但在所有應用程序中都可訪問的狀態欄項目?意思是圖標是可見的,當用戶點擊它時,它不會有菜單嗎? 另外,我不相信我見過支持拖放的狀態欄應用程序,但這並不意味着它不可能。 – 2010-06-07 15:47:36

+0

命令選項卡甚至 - 代表我的愚蠢輸入錯誤!我基本上想要一個狀態欄應用程序 - 我可以做得很好,但是想要將它從Command-Tab功能中隱藏起來。我不確定拖放功能,但我可能看到類似的東西。儘管它可能已經使用專用SystemUIPlugin框架的一部分來實現 - 「NSMenuExtra」。當然,我已經考慮過對此進行研究 - 但是在升級過程中使用私有框架並使其中斷的想法並不理想! – Moddy 2010-06-07 22:58:49

回答

1

LSUIElement鍵放到您應用的info.plist中。要進行拖放操作,可以將狀態項的視圖設置爲任何視圖應該接收的放置,並且從此處正常工作。

+0

我會試試這個 - 看起來好像它應該是一個理想的解決方案!我會回來的結果! – Moddy 2010-06-07 23:00:59