NSArrayController 関連で少し。
How to get notified of changes to models via an NSArrayController? - Stack Overflow
NSArrayController 経由でモデルの変更を知るには? KVO と 自前で NSNotificationCenter にポストする方法,
bind:toObject:withKeyPath:options: をオーバーライドする方法が紹介されていた。先日の SimpleCap改修では一番簡単な KVO を使った。こんな感じ。
[arrayController addObserver:self
forKeyPath:@"arrangedObjects"
options:NSKeyValueObservingOptionNew
context:nil];
Chris Hanson - NSArrayController design patterns
NSArrayController を使う場合で、それがバインドしている NSMutableArray を操作しても KVO通知がブロードキャストされない件について。
という方法が紹介されていた。or you can do[[self mutableArrayValueForKey:@"buddies"] addObject:buddy]
[self insertObject:buddy inBuddiesAtIndex:[self countOfBuddies]]
先日の SimpleCap 改修でもこの現象は把握していたので、この時には NSMutableArray操作後に -[NSArrayController rearrangeObjects] を呼び出して NSArrayController を強制的に更新していた。NSArrayController だけでモデルの操作が完結できればいいのだが、NSMutableArrayの方が操作メソッドは充実しているので、こちらを直接触った方が効率がいい。
Cocoa Bindings Examples and Hints
x
Cocoa Bindings のサンプルが10以上提供されている。今度眺めてみよう。