2011-10-27 24 views
6

MonoMacアプリケーションにメニューをプログラムで追加しようとしています。私はMainMenu.xibを開いて、MainMenuコントロールからすべてNSMenuItemを削除しました。MonoMacでプログラムでNSMenuItemを作成する

私は私のFinishedLaunching無効に次のコードを追加している:

var fileMenuItem = new NSMenuItem("File"); 
var fileMenu = new NSMenu(); 

var fileNew = new NSMenuItem("New"); 
var fileOpen = new NSMenuItem("Open"); 
var fileSave = new NSMenuItem("Save"); 

fileMenu.AddItem(fileNew); 
fileMenu.AddItem(fileOpen); 
fileMenu.AddItem(fileSave); 

fileMenuItem.Menu = fileMenu; 

NSApplication.SharedApplication.MainMenu.AddItem(fileMenuItem); 

しかし、それは何もしていません。

私はMainWindowController.Initialize()にコードを追加すると、私はアサーションの失敗を取得「項目がすでにメニューに挿入するには、別のメニューにある」

私はこれで見つかったコードを移植されたSO答え:Creating NSMenu with NSMenuItems in it, programmatically?

答えて

5

を私は次のことをしなければならなかったが判明:

fileMenuItem.Submenu = fileMenu; 

NSMenuItemのサブメニュープロパティが代わりにメニューのプロパティの実際のメニューに設定されている必要があります。

+0

fileMenu.title = "Someting"のタイトルを設定する必要がありますが、これは最初の項目ではない(常にアプリケーションの名前を持っています) – PetrV

関連する問題