我有一个表视图,包含许多字段,分为几个部分,字段来自数据库。我希望支持在字段中对文本进行就地编辑,因此我为每一行创建一个文本字段并将其添加到我的单元格中:
[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映射,每次配置一个单元格时都会更新,但这感觉有些过分。我疲惫的大脑是否错过了明显的东西?
谢谢,
添
答案 0 :(得分: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;
}