2

我有一个使用核心数据的项目,其中有一个数组控制器保存表视图的数据(使用核心数据创建)。
我需要将添加的任何行的第一列设置为可编辑(使用按钮触发插入)。
我试图在有方法的地方实现 NSTableViewDelegate:

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

但问题是每次我添加一行时,这个方法不会被调用一次,而是每行调用一次,所以如果我有一个 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 回答