如何使键盘从 UITextView 中消失?

Posted

技术标签:

【中文标题】如何使键盘从 UITextView 中消失?【英文标题】:How to make the keyboard disappear from a UITextView? 【发布时间】:2010-11-29 10:22:45 【问题描述】:

我的应用程序中有一个仅包含 UITextView 的屏幕。首次进入此屏幕时,在您点击进行编辑之前,键盘不存在。

但是如果你关闭屏幕,然后再回到它,键盘仍然是可见的,大概记得它之前的状态。我希望它在重新进入视图时消失。

有什么建议吗?我尝试了以下方法:

-(void)textViewDidEndEditing:(UITextView *)textView 
  NSLog ( @"end editing" );
  [textView resignFirstResponder];

查看控制台,在关闭该屏幕时确实会调用它,但它似乎没有帮助 - 当我重新进入屏幕时,文本视图仍然有键盘。

非常感谢

【问题讨论】:

你调用了正确的方法,但在错误的地方。您应该改为在视图控制器的 viewWillDisappear 方法中调用 [textView resignFirstResponder]。 【参考方案1】:

始终将您的 outlet 设置为 nil on:

-(void)viewDidUnload

   self.textViewObject = nil;

【讨论】:

谢谢。虽然没有帮助。我在 viewDidUnload 中放了一条日志语句,但没有被调用。我认为这是因为我的文本视图是自动创建的,因为我使用 IB 将它作为视图控制器放在另一个 nib 中。 (有意义吗?)【参考方案2】:

最后,我不得不这样做,以便打开此视图的视图在每次打开它时都重新创建此视图,以使键盘不再出现。

【讨论】:

【参考方案3】:

试着把同样的东西放进去

-(void)viewWillDisappear:(BOOL)animated

功能 代码是这样的

-(void)viewWillDisappear:(BOOL)animated

   [self.textViewObject resignFirstResponder];

你也可以在

中指定
-(void)viewWillAppear:(BOOL)animated

功能也是如此。

【讨论】:

以上是关于如何使键盘从 UITextView 中消失?的主要内容,如果未能解决你的问题,请参考以下文章

当键盘可见时如何使 UITextView 一直滚动到底部

自 iOS 7 中的删除(退格)操作以来,我如何才能不接收 UITextView 委托消息?

当用户单击视图的背景时,如何使键盘消失?

如何从 UIPopover 中的 UIButton 在主 UIView 中创建 UITextView?

如何让 iPhone 上的返回键使键盘消失?

访问其他文本字段时如何使其他文本字段的键盘消失