5

私はそれでdataArrayと定義されselectedIndexesNSIndexSetFile's Ownerだ持っていますNSCollectionViewいるんです。 (私はそのプロジェクトでMonoMacと一緒に作業していますので、単純なNSArrayControllerで問題を抱えていましたので、自分でソースを実装することにしました)。コントローラを初期化するときに、dataArray 。アプリケーションがウィンドウを表示すると、私が追加したすべてのデータがうまく表示されます。データバインディングNSCollectionViewで

問題は、データソースを変更してもインターフェイスに何らかの影響がないことです。対応するキーを使用して値をバインドしているので、データソースからアイテムを追加、変更、または削除すると、インターフェイスが自動的に更新されるべきではありませんか?

何か不足していますか?それについての考えは?

+0

これは完全に動作しましたか?私はモノマックで初めてで、あなたと同じことをしようとしています。 – tempy

+0

私も、これを行う方法の例はありますか? – tofutim

答えて

2

-f

どうもありがとう
あなたはデータソースがこのプロパティに準拠したキー値監視であることを確認する必要がありますの対多の関係データソースにバインドする場合。 NSMutableArrayのような変更可能なコレクションにパブリックプロパティを持つだけでは不十分です。

データソースの実装では、NSKeyValueObservingプロトコルのメソッドを使用して、変更をアドバタイズする必要があります(多対多リレーションシップの場合はwillChange:valuesAtIndexes:forKey:を使用)。

パフォーマンスが単純な実装より重要でない場合は、プロパティに(不変の)NSArrayを使用して、データが変更されたときに常に新しい配列を割り当てることもできます。しかし、この方法では、追加または削除されたオブジェクトの素晴らしいアニメーションは得られません。

+1

ありがとう、ニコライ。それはモノに関する問題の正しい方向性を指摘してくれました。 [Export]属性はトリックを行うようです。 – flohei

関連する問題