0

データ ソースとして表示される NIB のコントローラー オブジェクトを使用する NSTableView があります。NSTableView 非公式プロトコルを実装します。

この NSTableView は Core Data から値を取得します。アプリケーションを起動し、XML にあるすべての値を読み込んで表示します。

私の問題は、NSTableView がテーブルの最後に新しい行を追加していないように見えることです。永続的なストレージに値がない状態でアプリケーションを起動し、別の値を追加すると (XML に保存されていることがわかるので、値の追加は機能します)、テーブル ビューは単に新しい値を無視します。

テーブルの最後に追加されることがわかっている値を追加すると (内容はアルファベット順に整理されています)、新しい値は表示されません。

私と私が知っている値がテーブルの最後に行かない場合、値が追加され、テーブルに表示されますが、テーブルの最後の値は押し出されて消えます.

- (int)numberOfRowsInTableView:(NSTableView *)tv は、[tableView reloadData] を実行するときではなく、アプリケーションの起動時にのみ呼び出されることに気付きました。このイベントが発生する原因は何ですか? tableView で reloadData を呼び出す前に手動で起動しようとしましたが、うまくいかないようです。

これを引き起こしている可能性のあるアイデアはありますか?

誰もこのようなことに遭遇しましたか?何が考えられるかの手がかりはありますか?

4

1 に答える 1

0

Alex のコメントにより、コード、特に Interface Builder のバインディングを見直しました。テーブルとコントローラー オブジェクトの間にバインディングを設定し、NSTableDataSource を実装したことがわかりました。

すべてのバインディングを削除し、NSTableDataSourceプロトコルのみを実装しました。

于 2009-09-08T19:04:29.993 に答える