我正在编写一个使用最少IB的Mac应用程序 - 请参阅programatically create initial window of cocoa app (OS X)。
这是我的代码(通过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总是希望显示活动应用程序的名称。但它让我觉得我无法获得额外的菜单。
如何让所有菜单显示在屏幕顶部?
答案 0 :(得分:1)
我只需要在菜单中添加标题:
fileMenu.Title = "file";
appMenu.Title = "whatever";
第一个的标题仍然更改为应用程序的名称。