1

我有一个带有子菜单的 Mac 应用程序。可以选中每个项目以指示哪个项目处于活动状态。我用这样的代码做到这一点:

[sender setState:NSOnState];

但是,每次我单击一个新项目时,以前的项目都会保持选中状态。

文档状态:

在响应组中所有命令的操作方法中,使用 setState: 取消选中当前标记的菜单项:

[当前项设置状态:NSOffState];

我不太确定这是如何工作的。我对 Objective C 和 Cocoa 很陌生。有人有小费吗?

4

1 回答 1

2

因此,如果您有:

Item A
    Item 1
    Item 2
    Item 3

你想要它,以便对于项目 1-3 一次只能检查一个,我要做的是:为每个菜单项创建 IBOutlets 并将它们分组到 awakeFromNib 中的数组中。当您从每个项目发出呼叫时,循环遍历该数组,用于setState:NSOffState关闭所有内容,然后再次使用您的setState:NSOnState呼叫重新打开新单击的项目。

于 2012-08-28T02:29:45.860 回答