Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 以编程方式创建OS X“;服务“;菜单_Macos_Cocoa - Fatal编程技术网

Macos 以编程方式创建OS X“;服务“;菜单

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

我正在开发一个不使用NIB文件的跨平台应用程序,并试图找出如何创建标准OSX“服务”菜单(大多数应用程序中应用程序菜单的子菜单)

查看标准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]

请参阅。

您可以在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];

很 完美。谢谢,太好了。谢谢。