Macos 以编程方式创建OS X“;服务“;菜单
我正在开发一个不使用NIB文件的跨平台应用程序,并试图找出如何创建标准OSX“服务”菜单(大多数应用程序中应用程序菜单的子菜单) 查看标准Cocoa应用程序的nib文件,服务菜单定义如下:Macos 以编程方式创建OS X“;服务“;菜单,macos,cocoa,Macos,Cocoa,我正在开发一个不使用NIB文件的跨平台应用程序,并试图找出如何创建标准OSX“服务”菜单(大多数应用程序中应用程序菜单的子菜单) 查看标准Cocoa应用程序的nib文件,服务菜单定义如下: <menuItem title="Services" id="NMo-om-nkz"> <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Services" sys
<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]
请参阅。您可以在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];
为了将来的参考,根据@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];
很 完美。谢谢,太好了。谢谢。