0

2 つのコンボ ボックスを含むウィンドウがあるとします。ウィンドウを制御する にはNSWindowController、コンボ ボックスのコンテンツ値にバインドされた 2 つの可変配列があります。

私が望むのは、最初のコンボボックスには固定値がありますが、2 番目のコンボ値は最初に選択したコンボボックスの値に依存するということです。

関連する変更可能な配列が更新されたときに、2 番目のコンボ ボックスの内容をリロードするにはどうすればよいですか (または、これを実現するには配列をどのように更新する必要がありますか?)。

4

1 に答える 1

0

通常のアクセサ メソッドを介して 2 番目の配列の値を設定すると、適切な更新メッセージがすべてのバインドされた値と他のリスナーに伝播されます。

// When first combo box changes value
// NSArray *newArray = // Fancy algorithm..
self.secondArray = newArray;

これにより、2 番目のコンボ ボックスが更新されます。

プロパティのバッキングのインスタンスを変更したくない場合は、ここNSMutableArrayで説明する変更可能なアクセサー メソッドを使用できます。配列自体を変更せずに、可変配列の内容を変更できます。そして、KVC/KVO システムは変更をリスナーに伝達します。

于 2012-06-20T16:01:05.610 に答える