2012-02-21 35 views
-1

,顯示菜單欄如何在xcode中創建僅適用於背景的應用程序?

這就像這個問題上:How to create a background-running Cocoa application?

但是他詢問如何使一些沒有菜單欄上顯示出來。那麼我希望事情在菜單欄上顯示出來。

+0

可能重複的[如何將我的程序添加到OS X系統菜單欄?](http://stackoverflow.com/questions/2687938/how-to-add-my-program-to-the-os- x-system-menu-bar) – 2012-02-21 18:46:21

+0

相關信息,雖然性質不同[SO#38994583 Xamarin.Mac]中的應用背景(http://stackoverflow.com/questions/38994583/application-backgrounding-in-xamarin-mac ) - 這並不排除如接受的答案中所述的那樣顯示「狀態項目」 – 2016-12-14 23:19:04

回答

2

你想要做的關鍵的東西開始在Xcode新的Cocoa應用程序後:

1)給你的類的NSStatusItem@propertyIBOutlet NSMenu@property 和初始化它們中的一個,一旦應用程序在AppDelegate已經開始的awakeFromNib(當然,這並不一定是控制的狀態項的AppDelegate;你可以使用另一個類):

self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; 
[self.statusItem setMenu:self.menu]; 
[self.statusItem setTitle:@"Status"]; 
[self.statusItem setHighlightMode:YES]; 

2)在你的MainMenu.xib,可進行NSMenu並將其連線至您的AppDelegateNSMenu IBOutlet。這將是當你點擊你的狀態項目時出現的菜單,所以添加你想要的任何額外的項目,爲他們製作IBActions,並將它們連接起來。

3)同樣在MainMenu.xib中,刪除MainMenu.xib中的Window對象,因爲當您啓動應用程序時不需要顯示主窗口。

4)在你的info.plist中,添加「應用程序是代理(UIElement)」鍵並將其值設置爲YES。這擺脫了停靠欄圖標。

GravityScore鏈接的tutorial涵蓋了與上述相同的材料。如果在閱讀上述內容後,您不確定如何設置菜單項的操作,或者想知道如何動態添加菜單項,則other tutorial可能會有所幫助。

當然,請參閱NSStatusItem Class Reference瞭解如何自定義狀態項的外觀。

相關問題