2

コアデータを使用するプロジェクトがあります。ここには、テーブルビューのデータ(コアデータで作成されたもの)を保持する配列コントローラーがあります。
追加した行の最初の列を編集可能に設定する必要があります(挿入はボタンでトリガーされます)。
メソッドがある場所にNSTableViewDelegateを実装しようとしました。

- (void) tableView:(NSTableView *)tableView didAddRowView:(NSTableRowView *)rowView forRow:

ただし、問題は、行を追加するたびに、このメソッドが1回ではなく、行ごとに1回呼び出されるため、10行のテーブルがあり、新しいテーブルを挿入すると、メソッドが11回呼び出されることです。新しいオブジェクトがいつ追加されるかはよくわかりません。
この問題を回避するにはどうすればよいですか?

4

1 に答える 1

-1

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath挿入に使用していると思います。このメソッドでは、テーブルビューのオブジェクトの現在の数をメモします。また、didAddRowViewメソッドでは、tableViewオブジェクトの行数をクエリするだけで、合計が初期数より1多い場合は、行が追加されたことがわかります。

正直なところ、ユーザーがボタンをタップしてテーブルビューに行を追加するときに行が追加されるタイミングはわかっているので、このエレガントでない方法に頼るのではなく、行が挿入されたと想定する必要があります。 。行の挿入はほとんど瞬時に行われるため、これを提案します(遅延の原因となるある種の大規模な操作を行っている場合を除く)。

于 2012-07-28T21:40:20.413 に答える