2

NSMenuItemの有効状態をNSArrayControllerの選択にバインドするにはどうすればよいですか?アイテムの有効状態をコントローラーのselectedObjectsまたはselectedIndexesにバインドしようとしましたが、どちらの場合も、選択がある場合にmenuitemが有効になることはありません。IBで、「有効にする」チェックボックスをオフにしました。テーブルに選択がある場合にNSMenuItemを有効にしたいだけです。私のテーブルでは複数選択が可能で、selectedObjects。@ countにバインドされたボタンも使用しており、ボタンは期待どおりに有効/無効になっているため、同じキーパスを使用してもメニュー項目で機能すると思いましたが、違います。グーグルで答えが見つからないので難しいことではないので、簡単だと思います。ありがとう

4

1 に答える 1

0

有効なバインディングはBOOL値を取得する必要があり、残念ながら古いオブジェクトをブール値のTrueとして扱うだけではありません。ただし、幸いなことに、NSValueTransformerそうするのは簡単です。IBのバインディングペインで使用できるNSValueTransformerクラスリファレンスに名前が付けられた定数がいくつかあります。

この場合、モデルキーパスを「selectedObjects」にバインドし、「ValueTransformer」フィールドに「NSIsNotNil」と入力できます。トランスフォーマーは、バインディングBOOLに必要な値を提供します。

于 2011-03-30T18:37:47.587 に答える