1

を設定しました。その列は、インスタンスの()からコンテンツを取得するにNSTableViewバインドされています。NSArrayControllerNSMutableArrayMatchesNSMutableDictionary

動作していますが、この問題が発生しています:

Matches配列が更新されると(これは非常に頻繁に発生する可能性があります)、テーブルビューは更新に失敗する可能性がありますが、ビューが再描画されると(たとえば、アプリケーションを最小化して再ロードするとき)、コンテンツは問題なく表示されます。

それについて何かアイデアはありますか?ビューを再描画/コンテンツを更新するにはどうすればよいですか?


ヒント :

  • アレイ[tableView reloadData]を更新した後にも使用しましたが、効果はありません。Matches
  • これは常に発生するわけではありませんが、場合によっては...(つまり、コンテンツが表示される前に、ある程度の忍耐と、あちこちをクリックするか、アプリを最小化する必要があります)。
4

1 に答える 1

4

アレイを直接操作しているようです。もしそうなら、あなたは、いわば「コントローラーの後ろ」でそれをやっています。アレイが変更されたという通知はありません。

理想的には、アレイコントローラは、モデルの追加と削除を担当するオブジェクトである必要があります。アレイ自体ではなく、コントローラaddObject:でおよびremoveObject:(または同様のもの)を使用する必要があります。

これに失敗すると、アレイを操作するときにKVO通知(willChangeValueForKey:および)を発行できます。didChangeValueForKey:これにより、コントローラーが変更を取得します。

于 2012-05-20T19:37:14.867 に答える