我的观点有两个UITextFields
和一个UISwitch
。如果用户正在编辑textField
,然后立即触摸开关(不按返回),则文本会在键入时保留,而不会显示AutoCorrect
。
如果我知道他们输入了哪个textField
,我可以通过调用[textField resignFirstResponder]
强制完成自动更正。但是用户可能正在输入textField
,所以我不知道要拨打哪一个。
我该如何解决这个问题?有没有办法检测哪个textField
被使用?或者更简单的我没有想到的东西?
答案 0 :(得分:9)
这样做的一种可爱方式,无需跟踪哪个字段处于活动状态:
// This causes the current responder (eg. an input field) to resignFirstResponder and
[self.endEditing:YES];
答案 1 :(得分:6)
将[self.view endEditing:YES]
替换为以下内容......
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
答案 2 :(得分:2)
为正在进行编辑的文本字段调用uitextfielddelegate方法。因此,您无需面对检测正在编辑哪个文本字段的问题。
因此,实现uitextfielddelegate方法并将文本字段的委托分配给实现方法的类,并处理其中的响应。
您应该感兴趣的方法是:
<强>
textFieldDidEndEditing:
强>告诉委托,指定的文本字段已停止编辑。
- (void)textFieldDidEndEditing:(UITextField *)textField
<强>参数强>
textField
编辑结束的文本字段。<强>讨论强>
在文本字段重新启动其第一个响应者状态后调用此方法。您可以使用此方法更新委托的状态信息。例如,您可以使用此方法隐藏仅在编辑时可见的叠加视图。 委托实施此方法是可选的。
<强>状况强>
适用于iOS 2.0及更高版本。
声明
UITextField.h
答案 3 :(得分:0)
您可以使用textFieldDidBeginEditing委托跟踪自己哪一个是当前的。