这是一个奇怪的问题,但我对如何解决这个问题感到困惑 - 我有一个UITableView
,它有自定义的UITableViewCells。每个UITableViewCell
都有两个UITextFields
,每个UITextField
都链接到处理textFieldDidEndEditing
事件的委托。除了一个例子之外,这完全有效。
问题
屏幕上还有一个“保存”按钮,当用户编辑UITextField
并直接点击“保存”按钮而不点击屏幕上的其他位置时,就会出现问题。在这种情况下,saveAction
方法在textFieldDidEndEditing
事件之前被调用,结果导致用户的上次编辑丢失。
我尝试使用NSLog语句进行调试,发现当textFieldDidEndEditing
确实被调用时,它会在saveAction
事件之后调用。
我考虑过从textFieldDidEndEditing
调用saveAction
事件,但这没有意义,因为我不知道正在编辑哪个UITextField
。
非常感谢任何建议。
答案 0 :(得分:1)
您可以记下在视图控制器中调用-textFieldDidBeginEditing:delegate方法时处于活动状态的文本字段
指定属性指向活动文本字段,然后在-saveAction中发送-resignFirstResponder。
头:
@property (nonatomic, assign) UITextField * editingTextField;
m file:
-(void)textFieldDidBeginEditing:(UITextField *)textField{
self.editingTextField = textField;
}
-saveAction{
if(self.editingTextField)
[self.editingTextField resignFirstResponder];
//continue implementation
}