我有一个使用核心数据的项目,其中有一个数组控制器,用于保存表视图的数据(使用核心数据创建)。
我需要设置可编辑的任何行的第一列(使用按钮触发插入)
我尝试使用方法实现NSTableViewDelegate:
- (void) tableView:(NSTableView *)tableView didAddRowView:(NSTableRowView *)rowView forRow:
但问题是每次我添加一行时,此方法不会被调用一次,而是每次调用一次,所以如果我有一个10行的表并且我插入一个新的,则调用该方法11所以我真的不知道什么时候添加新物品 我该如何解决这个问题?
答案 0 :(得分:-1)
我认为您正在使用- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
来执行插入操作。在此方法中,记下表视图中当前的对象计数。并且在didAddRowView方法中只查询tableView对象中的行数,如果它总和为初始计数的一个,那么您就知道该行已被添加。
老实说,虽然您知道当用户点击按钮向表视图添加行时添加行,因此您应该假设已插入行而不是采用这种非优雅的方式这样做。我建议这样做,因为行插入几乎是即时的(除非你做了某种导致延迟的大型操作)。