Я пишу приложение Mac с минимальным использованием IB - см. programatically create initial window of cocoa app (OS X).программно создан NSMenu показывает только первый элемент
Вот мой код (через Xamarin/C#):
public override void DidFinishLaunching(NSNotification notification) {
// create and show a window, then . . .
NSMenu fileMenu = new NSMenu();
NSMenu appMenu = new NSMenu();
// add some items to both menus, then . . .
NSMenuItem file = new NSMenuItem("file");
file.Submenu = fileMenu;
NSMenuItem app = new NSMenuItem("app");
app.Submenu = appMenu;
NSMenu topLevelMenu = new NSMenu();
topLevelMenu.AddItem(app); // these two lines in
topLevelMenu.AddItem(file); // either order
NSApplication.SharedApplication.Menu = topLevelMenu; // incidentally, setting the MainMenu doesn't appear to do anything
}
}
Странным является то, что только первый пункт меню добавляю показывает вверх, и его название изменено на имя моего приложения. Таким образом, для вышеприведенного кода я видел бы только меню приложения, с названием MyAppName, но с правильными элементами. Если бы я сначала добавил файл NSMenuItem, я бы увидел это меню, снова с его именем, измененным на мое имя приложения, и меню просмотра вообще не появилось.
Я не против измененного названия; Я полагаю, что Apple хочет всегда показывать имя активного приложения. Но мне кажется, что я не могу получить дополнительные меню.
Как я могу отобразить все мои меню в верхней части экрана?
'fileMenu' и' appMenu' отсутствуют заголовок. – Willeke