6

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

次のコードを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の答えにあるコードを移植していました:プログラムでNSMenuItemsを含むNSMenuを作成しますか?

4

1 に答える 1

5

私は次のことをしなければならなかったことがわかりました:

fileMenuItem.Submenu = fileMenu;

NSMenuItemのSubmenuプロパティは、Menuプロパティではなく実際のメニューに設定されている必要があります。

于 2011-11-22T16:52:19.610 に答える