Создание NSMenuItems программно в MonoMac - PullRequest
6 голосов
/ 28 октября 2011

Я пытаюсь программно добавить меню в мое приложение 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: Создание NSMenu с NSMenuItems в нем, программно?

1 Ответ

5 голосов
/ 22 ноября 2011

Оказывается, я должен был сделать следующее:

fileMenuItem.Submenu = fileMenu;

Для свойства Submenu объекта NSMenuItem должно быть установлено фактическое меню, а не свойство Menu.

...