在 MonoMac 中以编程方式创建 NSMenuItems
我正在尝试以编程方式向我的 MonoMac 应用程序添加菜单。我已打开 MainMenu.xib 并从 MainMenu 控件中删除了所有 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 答案中找到的代码: 创建带有 NSMenuItems 的 NSMenu,以编程方式?
I'm trying to programmatically add a menu to my MonoMac application. I've opened up the MainMenu.xib and removed all NSMenuItem
from the MainMenu control.
I'm adding the following code into my FinishedLaunching
override:
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);
But it's not doing anything.
When I add the code to MainWindowController.Initialize()
, I get an assertion failure "item to be inserted into menu already is in another menu"
I was porting the code found in this SO answer: Creating NSMenu with NSMenuItems in it, programmatically?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
结果我必须执行以下操作:
NSMenuItem 的 Submenu 属性应该设置为实际菜单而不是 Menu 属性。
Turns out I had to do the following:
The Submenu property of the NSMenuItem should have been set to the actual menu instead of the Menu property.