iPad弹出窗口文本框 - resignFirstResponder不会关闭键盘

7 浏览
0 Comments

iPad弹出窗口文本框 - resignFirstResponder不会关闭键盘

我有两个文本字段,一个是email,一个是password。当这些字段在常规视图上呈现时,以下代码运行良好。但是当它们在一个弹出窗口上时,resignFirstResponder方法不起作用(becomeFirstResponder方法正常工作)。textFieldsShouldReturn方法对两个字段都进行了调用。请问我是否遗漏了什么?谢谢!

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
     if (theTextField == email) {
         [password becomeFirstResponder];
         return NO;
     }
     [theTextField resignFirstResponder];
     return NO;
}

0
0 Comments

在iPad的popover中,如果想要通过resignFirstResponder方法使键盘消失,可能需要对弹出窗口类进行一些处理。在常规视图中,视图本身会主动响应,但在弹出窗口中可能需要重新实现一些Responder方法才能使resignFirstResponder方法起作用。

解决方法:

可能需要对弹出窗口类进行重新实现,以确保resignFirstResponder方法可以正确地将键盘隐藏起来。

0
0 Comments

问题的原因是当使用UIModalPresentationFormSheet样式呈现视图时,键盘有时会保持在屏幕上。

解决方法是在视图控制器中重写`-(BOOL)disablesAutomaticKeyboardDismissal`方法,并返回`NO`。

以下是解决方法的代码示例:

- (BOOL)disablesAutomaticKeyboardDismissal {
    return NO;
}

这样,当使用UIModalPresentationFormSheet样式呈现视图时,调用`resignFirstResponder`方法将可以隐藏键盘。

0
0 Comments

问题出现的原因是因为默认情况下,在iPad中弹出的popover中的textfield无法通过调用resignFirstResponder方法来隐藏键盘。要解决这个问题,可以通过重写disablesAutomaticKeyboardDismissal方法并返回NO来禁用自动键盘隐藏。如果你的视图控制器是在UINavigationController中的,你需要创建UINavigationController的子类并在其中重写该方法。

以下是解决方法的代码示例:

- (BOOL)disablesAutomaticKeyboardDismissal {
    return NO;
}

你需要将这段代码放在你初始化键盘的视图控制器中。如果你的视图控制器是在UINavigationController中的,你需要创建一个子类,并在子类中重写该方法。

对于更多信息,请参考这个问题的链接:stackoverflow.com/questions/3316700/…

0