0

这是一个奇怪的问题,但我对如何解决这个问题感到困惑——我有一个UITableView自定义 UITableViewCells。每个UITableViewCell都有两个UITextFields,每个UITextField都链接到处理textFieldDidEndEditing事件的委托。除了在一种情况下,这非常有效。

问题

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

我尝试使用 NSLog 语句进行调试,发现虽然textFieldDidEndEditing确实被调用,但它是在saveAction事件之后调用的。

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

任何建议都非常感谢。

4

1 回答 1

1

您可以记下在视图控制器中调用 –textFieldDidBeginEditing: 委托方法时处于活动状态的文本字段

有一个指向活动文本字段的分配属性,然后在 -saveAction 中发送它 -resignFirstResponder。

标题:

@property (nonatomic, assign) UITextField * editingTextField;

.m 文件:

-(void)textFieldDidBeginEditing:(UITextField *)textField{
self.editingTextField = textField;
}

-saveAction{
if(self.editingTextField)
    [self.editingTextField resignFirstResponder];

 //continue implementation
}
于 2011-06-16T17:31:25.480 回答