我有一个 API 允许用户使用子菜单创建弹出菜单,当用户单击属于子菜单的选项时,我在检测所选项目时遇到问题。
因此,弹出菜单的显示和“构造”是正确的,并且工作正常。从一个 NSMenu 开始,我添加了一些 NSMenuItems,然后对于一些 NSMenuItems,我添加了一个新的 NSMenu 和一些 NSMenuItems。
当我单击属于子菜单的项目时,问题就开始了,我得到的 selectedItem 始终为零。它适用于主菜单。这是我显示菜单的方式:
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];