13

resignFirstResponder无论文本字段/视图/等如何称呼它,有没有一种方法可以隐藏键盘?

原因是我的视图上有很多文本字段,并且不想让resignFirstResponder所有文本字段都隐藏键盘。只想要一个将军

[self resignFirstResponder].

有任何想法吗?

提前致谢

4

5 回答 5

22

我知道这已经被标记为已回答,但是对于那些像我一样遇到这种情况的人,您可以在包含文本字段的视图上使用以下方法。

- (BOOL)endEditing:(BOOL)force

此方法查看当前视图及其子视图层次结构,以查找当前是第一响应者的文本字段。如果找到,它会要求该文本字段辞去第一响应者的职务。如果 force 参数设置为 YES,则永远不会询问文本字段;它被迫辞职。UIView 文档

[self.view endEditing:YES];

当我们点击视图时它会隐藏键盘。

于 2011-06-16T21:54:07.627 回答
6

借助以下代码,您可以在不参考 UITextfield / UITextView 的情况下关闭键盘:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

这将在没有参考的情况下全局关闭键盘。

希望这会帮助你。

于 2015-06-03T09:54:33.213 回答
3

最简单的方法是在您想要关闭键盘时使用一种方法,如下所示:

-(void)dismissKeyboard {
    [firstField becomeFirstResponder];
    [firstField resignFirstResponder];
}
于 2010-12-17T02:22:18.340 回答
1

在我自己的应用程序中,当我有多个文本字段并且想让键盘消失而不管哪个字段调用它时,我只会编写一个方法并让它们中的每一个resignFirstResponder

我假设作为一名程序员,您应该清楚地了解视图控制器上有多少文本字段以及如何访问它们,否则它会变得一团糟,您的应用程序看起来不会很好...... :-P

于 2010-12-17T02:25:25.670 回答
1

您可以检查以下问题:

总结:您可以在您选择的其他一些事情上调用 becomeFirstResponder。它可以是 UIViewController 或 UIView。我之前遇到过类似的问题,当我将视图控制器推回其调用者时,我需要让我的键盘消失,而不知道哪个文本字段是第一响应者。然后,在我返回的视图控制器的 viewWillAppear 上,我调用了 [self becomeFirstResponder] 并且推送视图的键盘消失了。因为这使得作为第一响应者的任何文本字段都变得松散

于 2011-07-13T09:25:21.190 回答