3

我的观点有两个UITextFields和一个UISwitch。如果用户正在编辑 a textField,然后立即触摸开关(不按回车键),则文本将在他们键入时留下,没有AutoCorrect.

如果我知道textField他们输入的是哪个,我可以通过调用来强制完成自动更正[textField resignFirstResponder]。但是用户可能正在输入任何一个textField,所以我不知道该调用哪个。

我怎样才能解决这个问题?有没有办法检测textField正在使用哪个?还是我没有想到的更简单的东西?

4

4 回答 4

9

一种无需跟踪哪个字段处于活动状态的可爱方法:

// This causes the current responder (eg. an input field) to resignFirstResponder and
[self.endEditing:YES];
于 2011-05-04T14:42:58.300 回答
6

换成[self.view endEditing:YES] 下面的...

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
于 2014-07-08T09:26:35.370 回答
2

为正在进行编辑的文本字段调用uitextfielddelegate方法。这样您就不必面临检测正在编辑哪个文本字段的问题。

因此,实现uitextfielddelegate方法并将文本字段的委托分配给您实现方法并处理其中响应的类。

您应该感兴趣的方法是:

textFieldDidEndEditing:

告诉代理指定文本字段的编辑已停止。

- (void)textFieldDidEndEditing:(UITextField *)textField

参数

textField
编辑结束的文本字段。

讨论

在文本字段放弃其第一响应者状态后调用此方法。您可以使用此方法来更新您的委托的状态信息。例如,您可以使用此方法隐藏应仅在编辑时可见的覆盖视图。委托执行此方法是可选的。

可用性

在 iOS 2.0 及更高版本中可用。

宣布于

UITextField.h

于 2011-05-04T13:35:36.257 回答
0

您可以使用 textFieldDidBeginEditing 委托来跟踪自己是哪一个是当前的。

于 2011-05-04T13:48:49.013 回答