我有一个带子菜单的Mac应用程序。每个项目都可以被选中以表示哪个项目处于活动状态。我用这样的代码来做:
[sender setState:NSOnState];
但是,每次我单击一个新项目时,以前的项目都会保持选中状态。
文件状态:
在响应组中所有命令的操作方法中,使用setState:取消选中当前标记的菜单项:
[currentItem setState:NSOffState];
我真的不确定这是怎么回事。我对Objective C和Cocoa很陌生。有人有小费吗?
因此,如果您有:
Item A
Item 1
Item 2
Item 3
你想让1-3项一次只能检查一个,我会这样做:为每个菜单项创建IBOutlets,并将它们分组到wakeFromNib中的数组中。当您从每个项目进行调用时,循环遍历该数组,使用setState:NSOffState
关闭所有内容,然后再次使用setState:NSOnState
调用重新打开新单击的项目。