我有一个包含自定义UITableCells的UITable。这些单元格包含几个UILabel和一个UITextField。表的数据源来自主控制器的属性。(该控制器也是表的委托和数据源)。
以下是UI的简化截图:
现在,当用户编辑其中一个UITextFields时,我需要“实时”更新所有UILabels的内容。 为此,在UITextField级别侦听“Editing Changed”事件。这将触发以下操作:
- (IBAction) editChangeHandler: (id) sender {
MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[[delegate.viewController.myDataSourceArray objectAtIndex:self.rowIndex] setANumber: [theTextField.text intValue]];
[delegate.viewController reloadRows];
}
视图控制器中的reloadRows方法如下所示:
- (void) reloadRows {
NSLog(@"called reloadRows");
//perform some calculations on the data source objects here...
[theUITable reloadData];
}
我的问题在于,每当用户更改字段中的值时,reloadRows方法都会成功调用,reloadData也会被调用,但这也导致键盘被关闭。
因此,在编辑TextField时,用户只能触摸一个键,然后键盘就会消失并重新加载表格。
有没有人知道解决方法或遇到过同样的问题?