iPhone表视图:如何访问自定义TableViewCell的文本字段

Gil*_*ean 7 iphone uitableview

我已经设置了一个带有几个自定义UITableViewCell的UITableView,它有一些UITextField和UISwitch(基于Settings.app).我的问题是,当用户点击导航栏中的"保存"按钮时,访问这些文本字段和切换控件以保存其值的节拍方式是什么?

Ed *_*rty 15

我的建议是不要使用自定义UITableViewCell.我曾经以自己的方式去做,但有更好的方法.使用可以为其指定任意视图的accessoryView属性UITableViewCell,例如UITextFieldUISwitch.它与"设置"应用程序中的完全相同.

然后,当您需要访问它时,只需使用

NSString *text = ((UITextField *)cell.accessoryView).text;
Run Code Online (Sandbox Code Playgroud)

但是,您必须小心设置单元格并访问它们的值.如果任何单元格脱离屏幕,它将被删除,您将无法访问文本字段.设置单元格时要执行的操作是:

cell.accessoryView = nil;  //Make sure any old accessory view isn't there.
if (/*cell needs text field*/) {
    UITextField *textField = [[[UITextField alloc] initWithFrame:frame] autorelease];
    textField.text = savedValue;
    cell.accessoryView = textField;
    [textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged];
}

...

- (void) textChanged:(UITextField *)source {
    self.savedValue = source.text;
}
Run Code Online (Sandbox Code Playgroud)

  • 我使用UIControlEventEditingDidEnd.UIControlEventValueChanged似乎没有被调用:? (4认同)