Macos 如何从子菜单中获取选定的NSMenuItem?
我有一个API,允许用户创建带有子菜单的弹出菜单,当用户单击属于子菜单的选项时,我在检测所选项目时遇到问题 因此,弹出菜单的显示和“构造”是正确的,工作正常。从NSMenu开始,我添加了一些NSMenuItems,然后对于某些NSMenuItems,我添加了一个新的NSMenu,其中包含了一些NSMenuItems 当我单击属于子菜单的项目时,问题就开始了,我得到的selectedItem总是为零。它在主菜单上运行良好。以下是我显示菜单的方式:Macos 如何从子菜单中获取选定的NSMenuItem?,macos,cocoa,nsmenu,nsmenuitem,nspopupbuttoncell,Macos,Cocoa,Nsmenu,Nsmenuitem,Nspopupbuttoncell,我有一个API,允许用户创建带有子菜单的弹出菜单,当用户单击属于子菜单的选项时,我在检测所选项目时遇到问题 因此,弹出菜单的显示和“构造”是正确的,工作正常。从NSMenu开始,我添加了一些NSMenuItems,然后对于某些NSMenuItems,我添加了一个新的NSMenu,其中包含了一些NSMenuItems 当我单击属于子菜单的项目时,问题就开始了,我得到的selectedItem总是为零。它在主菜单上运行良好。以下是我显示菜单的方式: NSRect frame = NSMakeRect
NSRect frame = NSMakeRect(mp.origin.x + 10, mp.origin.y + 10, 1, 1);
NSPopUpButtonCell *cell = [[NSPopUpButtonCell alloc] initTextCell: @"" pullsDown: NO];
[cell setAutoenablesItems: NO];
[cell setAltersStateOfSelectedItem: NO];
[cell setMenu: mainMenu];
[cell selectItem: Nil];
[cell performClickWithFrame: frame inView: [window initialFirstResponder]];
NSMenuItem *xpto = [cell selectedItem];
单元格通常在控件中使用。为什么不使用
nspoupbutton
?nspoupbutton不允许使用performClickWithFrame,这是菜单等待用户输入的方式。此外,我得到的不是简单的菜单,而是一个下拉框。我还从邮件列表上看到,我想要的这种特殊用法是不可能的。因此,我接下来要尝试的是利用NSMenuItem的“onItemClick:”事件来检测单击的内容。如果您只需要菜单,请创建一个菜单并调用NSMenu的一个弹出…
方法。单元格通常在控件中使用。为什么不使用nspoupbutton
?nspoupbutton不允许使用performClickWithFrame,这是菜单等待用户输入的方式。此外,我得到的不是简单的菜单,而是一个下拉框。我还从邮件列表上看到,我想要的这种特殊用法是不可能的。因此,我下一步要尝试的是利用NSMenuItem的“onItemClick:”事件来检测单击的内容。如果您只需要菜单,请创建一个菜单并调用NSMenu的一个弹出…
方法。