2011-01-21 79 views
14

我試圖製作一個非常簡單的Cocoa應用程序。我有三個窗口,上面有三條消息,這就是它的全部。我正在試圖做的是這樣的:帶有MenuBar圖標的簡單可可應用程序。如何:?

用戶運行的應用程序,該應用程序圖標將出現在菜單欄,這就是所發生的一切,沒有菜單,沒有停靠圖標

然後,用戶可以點擊MenuBar圖標並有一個下拉列表並從三個可用消息中進行選擇。

我知道這是無用的,但是這是字面上我的第一個應用程序,我無法弄清楚如何讓NSStatusItem正常工作......

我環顧四周,發現了一些教程,但我可以」 t似乎跟隨其中任何...任何幫助?

回答

18
  1. 關於「無常駐圖標」 - 添加布爾LSUIElement進入Info.plist文件,並將其設置爲。這不會在應用程序切換器UI(cmd +選項卡)中顯示應用程序。
  2. 添加菜單欄圖標是儘可能尋找到NSStatusBarNSStatusItem文檔和使用示例代碼有:

// this one is taken from apple documentation 
- (void)activateStatusMenu { 
    NSStatusBar *bar = [NSStatusBar systemStatusBar]; 

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

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

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    [self activateStatusMenu]; 
} 

更新由於ARC不允許在代碼retain電話,我設法通過創建在正在創建該項目的類theItem作爲__strong實例變量來解決問題。

+1

哇,太棒了。我(正如我的句柄所暗示的那樣)是一個可可newb,我從vb.net的背景來過來,並且正在爲objective-c語法掙扎,而不是。然而,我發現蘋果可可文檔比微軟的vb文檔要透徹得多,這些文檔不是非常「用戶友好」的。你的回答很有幫助,我感謝你的幫助。 – Zrb0529 2011-01-22 22:58:26