UITextFieldDelegate事件的延迟

时间:2011-06-16 16:41:39

标签: ios uitextfield uitextfielddelegate

这是一个奇怪的问题,但我对如何解决这个问题感到困惑 - 我有一个UITableView,它有自定义的UITableViewCells。每个UITableViewCell都有两个UITextFields,每个UITextField都链接到处理textFieldDidEndEditing事件的委托。除了一个例子之外,这完全有效。

问题

屏幕上还有一个“保存”按钮,当用户编辑UITextField并直接点击“保存”按钮而不点击屏幕上的其他位置时,就会出现问题。在这种情况下,saveAction方法在textFieldDidEndEditing事件之前被调用,结果导致用户的上次编辑丢失。

我尝试使用NSLog语句进行调试,发现当textFieldDidEndEditing确实被调用时,它会在saveAction事件之后调用。

我考虑过从textFieldDidEndEditing调用saveAction事件,但这没有意义,因为我不知道正在编辑哪个UITextField

非常感谢任何建议。

1 个答案:

答案 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
}