カスタム クラス ( MyClass
) 配列をプログラムで配列コントローラー ( NSArrayController
) にバインドし、その内容を別の配列 ( modelArray
) にバインドしたいと考えています。MyClass
のように、配列の内容を表示しますNSTableView
。
私の問題は、可変配列のメソッドが呼び出されるようにこのバインディングを作成する方法、つまりメソッドです
-(void) insertObject:(id)object inContentAtIndex:(NSUInteger)index
-(void) removeObjectFromContent:(id) object
(1)この方法でバインドすると、上記のメソッドが呼び出されますが、コントローラーのコンテンツはmodelArray
(明らかに)バインドされなくなります
[myArrayController bind:@"contentArray" toObject:myClassInstance withKeyPath:@"content" options:nil];
(2) これらの方法でバインドすると、メソッドsetContent:
とメソッドのみcontent
が呼び出され、変更可能なメソッドは呼び出されません。setContent:
また、これらのメソッド (および)を削除しようとしましたcontent
が、例外が発生するだけですsetValue:forUndefinedKey:
[myClassInstance bind:@"content" toObject:myArrayController withKeyPath:@"arrangedObjects" options:nil];
また
[myClassInstance bind:@"content" toObject:myArrayController withKeyPath:@"content" options:nil];
配列コントローラーにバインドされているときに行が追加されるたびに、テーブルの配列全体が再設定されるとは思わないので、同じ種類のバインドが必要です。