繁体   English   中英

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

[英]IPad dismiss Keyboard without knowing which Textfield opened it

有没有办法做一般的resignFirstResponder隐藏键盘,无论textfield / view / etc调用它?

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

[self resignFirstResponder]

有任何想法吗?

提前致谢

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

- (BOOL)endEditing:(BOOL)force

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

[self.view endEditing:YES];

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

您可以在下面的代码的帮助下,在没有任何UITextfield / UITextView参考的情况下关闭键盘:

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

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

希望这会帮助你。

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

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

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

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

您可以查看以下问题:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM