2

私のアプリケーションでは、NSObjectControllerがユーザーインターフェイスのすべてのコントロールにバインドされています。これは今のところうまく機能します。私が抱えている唯一の問題は、NSComboBoxの選択を同じObjectControllerにバインドすることです。今日私が知っている限り、ComboBoxの値は常に文字列であるため、OBjectControllerのクラスのフィールドもNSStringです。私にとっては簡単に聞こえますが、機能しません。

私は常に「...クラスはキーのキー値コーディングに準拠していません...」を取得します。

ComboBox自体の項目は、他のコントローラーであるNSArrayControllerからのものです。しかし、その部分は正常に機能します。配列のすべてのアイテムは、ComboBoxのアイテムです。私が抱えている問題は、選択をObjectControllerに取り込むことです。

4

1 に答える 1

2

NSObjectController が使用しているデータ モデル オブジェクトには、その値に対する適切なキー メソッドがないと言っているだけです。

Cocoa Bindings Reference ドキュメントを見るとvalue、モデル内のキー値コーディング準拠のキーに対応する NSObjectController 内のキーにバインディングを設定する必要があります。

例:

NSObjectControllerモードはClass、クラス名はfooです。次に、foo のキーをcomboSelectionNSComboBox の にバインドしますvalue。例外が言っているのは、 Foo クラスには というメソッドがないということcomboSelectionです:

- (NSString*)comboSelection;
- (void)setComboSelection:(NSString*)inSelection;

NSMutableDictionary を NSObjectController のクラスとして使用する場合、ディクショナリは任意のキーを保持できるため、はるかに簡単です。

CoreData (mode = Entity) を使用している場合、CoreData エンティティには適切なプロパティが含まれている必要があります。

于 2009-11-07T19:36:14.950 に答える