にNSTableViewバインドされている がありNSArrayControllerます。のプロパティは にバインドされていNSArrayControllerます。すべてがうまく機能します。contentSetNSMutableSet
NSTableViewここで、組み込みのアニメーションを使用して行を削除したいと考えています。私はこれを行うことができ- [NSTableView removeRowsAtIndexes:withAnimation:]、行はすぐにアニメーション化されますが、テーブルビューから削除したオブジェクトは、テーブルNSMutableSetビューをバッキングしている にまだぶら下がっています。明らかに私はそれを取り除く必要があります。NSArrayControllerのメソッドでオブジェクトを削除しようとするとremoveObject:、オブジェクトがテーブルビューからすぐに消えます。つまり、アニメーションが発生しないか、途中で途切れます。
バインディングは驚くほど機能し、物事を非常に簡単にしますが、バインディングとNSTableViewアニメーションの両方が使用されている場合、データ ソースとテーブルビューの同期を維持するための適切な方法は正確には何でしょうか? NSTableView答えは、アニメーションを使用して境界に行を追加する方法にも対処する必要があります。