IPad在不知道哪个Textfield打开它的情况下关闭键盘

时间:2010-12-17 02:14:06

标签: objective-c iphone ipad keyboard resignfirstresponder

有没有办法让一般resignFirstResponder隐藏键盘,无论textfield / view / etc调用什么?

原因是我的视图中有很多文本字段,并且不希望所有文本字段都隐藏键盘resignFirstResponder。只想要一般

[self resignFirstResponder]

有什么想法吗?

提前致谢

5 个答案:

答案 0 :(得分:19)

我知道这已被标记为已回答,但对于那些遇到此问题的人,我可以在包含文本字段的视图上使用以下方法。

- (BOOL)endEditing:(BOOL)force
  

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

[self.view endEditing:YES];

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

答案 1 :(得分:6)

您可以在不使用UITextfield / UITextView的情况下解雇键盘,并提供以下代码:

print(["".join(tup) for tup in data])
['8blue', '2green', '1red']

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

希望这会对你有所帮助。

答案 2 :(得分:3)

最简单的方法是,只要你想要解除看起来像这样的键盘,就有一个方法:

-(void)dismissKeyboard {
    [firstField becomeFirstResponder];
    [firstField resignFirstResponder];
}

答案 3 :(得分:1)

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

我认为作为程序员,您应该清楚地知道视图控制器上有多少文本字段以及如何访问它们,否则它会搞砸,你的应用程序看起来不会很好...... :-P

答案 4 :(得分:1)

您可以查看以下问题:

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