iPad弹出窗口文本框 - resignFirstResponder不会关闭键盘
iPad弹出窗口文本框 - resignFirstResponder不会关闭键盘
我有两个文本字段,一个是email,一个是password。当这些字段在常规视图上呈现时,以下代码运行良好。但是当它们在一个弹出窗口上时,resignFirstResponder方法不起作用(becomeFirstResponder方法正常工作)。textFieldsShouldReturn方法对两个字段都进行了调用。请问我是否遗漏了什么?谢谢!
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { if (theTextField == email) { [password becomeFirstResponder]; return NO; } [theTextField resignFirstResponder]; return NO; }
问题出现的原因是因为默认情况下,在iPad中弹出的popover中的textfield无法通过调用resignFirstResponder方法来隐藏键盘。要解决这个问题,可以通过重写disablesAutomaticKeyboardDismissal方法并返回NO来禁用自动键盘隐藏。如果你的视图控制器是在UINavigationController中的,你需要创建UINavigationController的子类并在其中重写该方法。
以下是解决方法的代码示例:
- (BOOL)disablesAutomaticKeyboardDismissal { return NO; }
你需要将这段代码放在你初始化键盘的视图控制器中。如果你的视图控制器是在UINavigationController中的,你需要创建一个子类,并在子类中重写该方法。
对于更多信息,请参考这个问题的链接:stackoverflow.com/questions/3316700/…