1

サブメニューのある Mac アプリがあります。各項目にチェックマークを付けて、アクティブな項目を示すことができます。私は次のようなコードでこれを行います:

[sender setState:NSOnState];

ただし、新しい項目をクリックするたびに、前の項目がチェックされたままになります。

ドキュメントの状態:

グループ内のすべてのコマンドに応答するアクション メソッドで setState: を使用して、現在マークされているメニュー項目のチェックを外します。

[currentItem setState:NSOffState];

これがどのように機能するかはよくわかりません。私は、Objective C と Cocoa を初めて使用します。誰にもヒントがありますか?

4

1 に答える 1

2

あなたが持っている場合:

Item A
    Item 1
    Item 2
    Item 3

そして、項目 1 ~ 3 について、一度に 1 つだけをチェックできるようにしたかったのですが、私なら次のようにします。メニュー項目ごとに IBOutlets を作成し、それらを awakeFromNib の配列にグループ化します。各アイテムから呼び出しを行うときは、その配列をループし、使用setState:NSOffStateしてすべてをオフにしてから、setState:NSOnStateもう一度呼び出しを使用して、新しくクリックしたアイテムをオンに戻します。

于 2012-08-28T02:29:45.860 に答える