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 に答える