簡體   English   中英

以編程方式創建OS X“服務”菜單

[英]Programmatically creating the OS X “Services” menu

我正在開發一個不使用NIB文件的跨平台應用程序,並試圖弄清楚如何創建標准OS X“服務”菜單(大多數應用程序中應用程序菜單的子菜單)。

查看標准Cocoa應用程序的nib文件,服務菜單的定義如下:

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

顯然,使它起作用的是systemMenu="services"但是我看不到如何以編程方式創建這樣的NSMenu項-NSMenu上沒有“ systemMenu”屬性。

這里發生了什么魔術?

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

-[NSApplication servicesMenu]

請參閱文檔

供將來參考,基於@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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM