在 UIViewController 中关闭键盘

Posted

技术标签:

【中文标题】在 UIViewController 中关闭键盘【英文标题】:Dismissing the keyboard in a UIViewController 【发布时间】:2015-09-16 19:13:18 【问题描述】:

我在包含 UIViewController 和 SettingsViewDelegate 的 ViewController 类中运行此代码。 View Controller 场景包含一个带有滚动条的文本视图。

 @IBOutlet weak var tvEditor: UITextView!

 override func viewDidLoad() 
    super.viewDidLoad()      

   // Hide keyboard via swipeDownGestureRecognizer.

     let swipeGesture: UISwipeGestureRecognizer = UISwipeGestureRecognizer (target: self, action: "hideKeyboard")

    swipeGesture.cancelsTouchesInView = false

    UISwipeGestureRecognizerDirection.Down

    

   func hideKeyboard() 
   tvEditor.resignFirstResponder()

当我在 ios 模拟器/设备中运行我的项目时,键盘不会响应向下滑动。我将设备的方向更改为横向,然后返回纵向,即键盘消失的时候。谁能告诉我哪里出错了?

【问题讨论】:

您尚未将此swipeGesture 添加到任何视图中。 【参考方案1】:

首先,请将 swipeGesture 添加到您的视图控制器。 还有……

func hideKeyboard() 
    self.view.endEditing(true)

它适用于您的项目。 希望对你有帮助。

【讨论】:

不客气! :) 如果您还有其他问题,请告诉我。 我将 swipeGesture 添加到我的视图控制器,但没有将 tvEditor.resignFirstResponder() 更改为 self.view.endEditing(true)。这工作了一段时间。当我确实进行了更改时,Xcode 给了我 - 致命错误:在展开 Optional 值时意外发现 nil。我将代码改回原来的样子,但我仍然收到错误消息。这是否与错误配置手势有关,还是我的代码有其他问题?你可能已经猜到了,我是个初学者。 嗨,很抱歉回复晚了。 我不知道你为什么不能使用它,它对我来说很好用。那么您的意思是存在构建错误或运行时错误吗?谢谢

以上是关于在 UIViewController 中关闭键盘的主要内容,如果未能解决你的问题,请参考以下文章

在 UIAlertController Action 中关闭 UIViewController 会导致崩溃

如何在 Android SearchView 中关闭键盘?

如何在本机反应中关闭系统键盘

在动态 UITableView 中关闭 iPhone 键盘

iOS - UITextView 在情节提要中关闭键盘

键盘不会在应用程序中关闭