2017-05-17 50 views
1

我正在研究不使用NIB文件並試圖找出如何創建標準OS X「服務」菜單的跨平臺應用程序(該應用程序的子菜單在大多數應用程序中)。以編程方式創建OS X「服務」菜單

望着標準Cocoa程序筆尖文件,該服務菜單的定義是這樣的:

<menuItem title="Services" id="NMo-om-nkz"> 
    <modifierMask key="keyEquivalentModifierMask"/> 
    <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/> 
</menuItem> 

顯然,這使得它的工作位systemMenu="services"但我不能看到如何programmitically創建NSMenu這樣的項目 - NSMenu上沒有「systemMenu」屬性。

這裏發生了什麼魔術?

回答

2

您可以在NSApplication上找到服務菜單。

-[NSApplication servicesMenu] 

參見documentation

+0

完美。謝謝。 –

1

以供將來參考的基礎上,@ catlan的回答這裏的一些代碼...

// Create the services menu 
NSApp.servicesMenu = [[NSMenu alloc] init]; 

// Create menu item for it 
NSMenuItem* servicesItem = [[NSMenuItem alloc] init]; 
servicesItem.title = @"Services"; 
servicesItem.submenu = NSApp.servicesMenu; 

// Add it to the app menu 
NSMenu* appMenu = [[NSApp mainMenu] itemAtIndex:0].submenu; 
[appMenu addItem:servicesItem]; 
相關問題