2017-05-17 5 views
1

NIBファイルを使用しないクロスプラットフォームアプリケーションで作業していて、標準のOS X「サービス」メニュー(アプリケーションのサブメニューほとんどのアプリケーションではメニュー)。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"ですが、私はprogrammitically NSMenuを作成する方法を見ることができませんNSMenuには "systemMenu"プロパティはありません。

ここではどのような魔法が起こっていますか?

答えて

2

[サービス]メニューは、NSApplicationにあります。

-[NSApplication servicesMenu] 

documentationを参照してください。 @のcatlanの回答に基づいて、将来の参考のために

+0

パーフェクトです。ありがとう。 –

1

、ここではいくつかのコード...

// 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]; 
関連する問題