私はココアプログラミングの初心者です。次のような単純なバインディングコードを作成しようとして、バインディングを学んでいます。
- (void)awakeFromNib
{
self.aValue = [[Model alloc] init];
NSString *aKey = @"value";
NSDictionary *aDic = [[NSDictionary alloc] initWithObjectsAndKeys:self.aValue, aKey, nil];
self.anObjctCtrler = [[NSObjectController alloc] initWithContent:nil];
[self.anObjctCtrler setContent:aDic];
NSLog(@"%ld", [[[[self.anObjctCtrler content] valueForKey:@"value"] number] integerValue]);
}
anObjectCtrler は Interface Builder の NSObjectController であり、NSTextField をオブジェクト コントローラー (anObjectCtrler のクラス) に、モデル キー パス「値」およびコントローラー キー「選択」で「バインド」します。オブジェクト コントローラは、オブジェクトとしてファイルの所有者への参照アウトレットを持っています。
コードを実行すると、NSTextField に「選択なし」と表示されますが、「self.aValue」の値とは異なります。「NSLog...」の出力を使用してオブジェクト コントローラーの内容を確認すると、正しい値が表示されます。
誰でもこれを解決するのを手伝ってくれますか?
どうもありがとう。