0

我有一个由许多字段组成的表格视图,分为多个部分,这些字段来自数据库。我希望支持对字段中的文本进行就地编辑,因此我为每一行创建一个文本字段并将其添加到我的单元格中:

[cell.contentView addSubview:myTextField];

我给文本字段一个固定的标签,以便我可以轻松地配置单元格:

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
    Item *item = [self itemWithIndexPath:indexPath];
    UITextField *textField = (UITextField *)[cell.contentView viewWithTag:1000];
    textField.text = item.name;
}

编辑文本字段后,我需要更新数据库。我可以在文本字段上设置一个委托来响应编辑的结束,但是我必须以某种方式找出哪个 indexPath 已被编辑,以便我可以适当地更新数据库。

我怎样才能做到这一点?

我想我可以维护一个 tag->IndexPath 映射,每次我配置一个单元格时都会更新它,但这感觉有点矫枉过正。我疲惫的大脑是否错过了显而易见的事情?

谢谢,

蒂姆

4

1 回答 1

1

于是,我的大脑开始工作:

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    UITableViewCell *cell = (UITableViewCell *)textField.superview.superview;
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
    Item *item = [self itemWithIndexPath:indexPath];
    item.name = textField.text;
}
于 2012-06-07T14:13:12.637 回答