私は小さなコアデータアプリを持っています。ビューとモデルの間のバインディングとして機能する NSObjectController のサブクラスと、ユーザーが入力するビューの NSTextField があります。
ウィンドウが開くと、テキスト フィールドが編集可能になります。これは、バインディングがサブクラス化された NSObjectController に設定され、コントローラー キーが "content" に設定され、Model Key Path がエンティティの属性に設定されているためです。
テキストを入力すると、ファイルを保存して再度開くと、NSTextField にテキストがありません。
テストのために、コントローラーの add: セレクターに接続されたボタンがあり、ボタンを押すとすべて正常に動作します。テキストを NSTextField に入力し、ドキュメントを保存し、再度開くことができます。
nib がロードされたときにオブジェクトを準備するにはどうすればよいですか?
NSObjectController のサブクラスの init メソッドには、次のものがあります。
[self setAutomaticallyPreparesContent:YES];
そして、私は MyDocument:windowControllerDidLoadNib にあります (oc は IB でサブクラス化された objectcontroller への IBOutlet です):
[oc fetchWithRequest:nil merge:NO error:&error];
しかし、うまくいきませんでした。ユーザーが入力を開始できるように、コンテンツを作成する必要があります。
ありがとう