UITextView - 键盘在拖动时关闭或交互关闭

UITextView - Keyboard Dismiss on Drag or Dismiss Interactively

我正在重构视图控制器以包含关闭键盘的功能。该布局有一个 UITextView 和一个工具栏(没有用户关闭键盘的屏幕外区域)见下文 -

在情节提要中,有一个选项可以在 UITextView 中以不同方式关闭键盘,我将其更改为拖动时关闭,或以交互方式关闭。我没有看到任何变化,也无法执行任何操作来关闭键盘。如何让键盘与 UITextView 交互关闭?

要使内置键盘关闭功能适用于 UIScollView 或其子类之一(例如 UITextView),滚动视图需要能够滚动。如果文本视图中没有足够的文本来提供滚动,它不会执行键盘关闭。

不过,您可以打开垂直弹跳,然后它就会起作用。在界面构建器或代码集中检查 "Bounce Vertically" myTextView.alwaysBounceVertical = true.

您可以自定义键盘并添加隐藏键盘的按钮。之后,当您点击屏幕时,键盘会出现,您可以再次书写。这是我的示例代码:

class ViewController: UIViewController {

@IBOutlet weak var myTextView: UITextView!
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    createToolbar(textField: myTextView)

}

func createToolbar(textField : UITextView) {
    let toolbar = UIToolbar()
    toolbar.barStyle = UIBarStyle.default
    toolbar.sizeToFit()
    let hidekeyboard = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(hidekeyboardd))

    toolbar.items = [hidekeyboard]
    myTextView.inputAccessoryView = toolbar
}

@objc func hidekeyboardd() {
     myTextView.resignFirstResponder()
}