resignFirstResponder 不关闭 UITextField 的 ASCII 键盘
Posted
技术标签:
【中文标题】resignFirstResponder 不关闭 UITextField 的 ASCII 键盘【英文标题】:resignFirstResponder not dismissing ASCII keyboard for UITextField 【发布时间】:2009-09-24 14:26:15 【问题描述】:我有一个带有 4 个 UITextFields 的 UIViewController,其中 3 个使用 NumberPad,1 个使用 ASCII 键盘。当用户触摸文本字段外的背景按钮时,我无法关闭 ASCII 键盘。背景按钮可以很好地关闭数字键盘,但不会关闭 ASCII 键盘。
是的,ASCII 键盘确实有一个“完成”按钮并且可以工作(我在 IB 中设置了委托并实现了 textFieldShouldReturn)但我希望所有字段都能够通过触摸背景区域来关闭,以便它们的行为一致(尽可能)。
调用了背景按钮的操作方法(如下),它确实为我的所有文本字段对象调用了 resignFirstResponder,但使用 ASCII 键盘调用文本字段不会关闭键盘,而对数字文本字段的其他调用会关闭他们的数字键盘。
-(IBAction)backgroundClick:(id)sender
// resignFirstResponder makes the keyboard go away when the
// user clicks outside of one of the text fields
[textField resignFirstResponder];
[num1Field resignFirstResponder];
[num2Field resignFirstResponder];
[num3Field resignFirstResponder];
[num4Field resignFirstResponder];
我在这里缺少什么?
【问题讨论】:
我在上面函数的开头又加了一行:BOOL isIt = [textField isFirstResponder];当键盘处于活动状态时,我在后台区域触摸并在此调用后立即有一个断点,isIt 是 NO。我不知道为什么,但我想这就是辞职不起作用的原因。 【参考方案1】:发现问题。文本字段的引用出口未连接到 IB 中的文件所有者。
我以为我已经检查了连接,但显然错过了这一点。
【讨论】:
以上是关于resignFirstResponder 不关闭 UITextField 的 ASCII 键盘的主要内容,如果未能解决你的问题,请参考以下文章
resignFirstResponder 无法关闭我在 iPad 上的自定义键盘。为啥?
为啥必须在主队列上异步调用 resignFirstResponder() 来关闭键盘
即使运行代码,resignFirstResponder 也不会关闭键盘
UITextField - resignFirstResponder 查询