使用滑动手势关闭键盘

在Messages.app中,您可以通过滚动列表视图来关闭键盘。 要清楚,它不仅仅是响应scrollViewDidScroll事件。 向下滑动时,键盘会用手指跟踪。 知道怎么做的吗?

从iOS 7开始,您就可以使用了

 scrollView.keyboardDismissMode = .Interactive 

从文档:

UIScrollViewKeyboardDismissModeInteractive

键盘跟随拖动触摸屏幕,可以再次向上拉以取消关闭。

在XCode属性检查器中, scrollView具有Keyboard属性。 它有3个选项。

  • 不要解雇
  • 阻止拖拽
  • 解雇互动。

UIScrollView属性

如果您正在使用tableViewSwift 3Swift 4 ,它可以使用:

 tableView.keyboardDismissMode = .onDrag 

没有tableview – 是的,它不是滑动,但它不是技巧

 override func touchesBegan(_ touches: Set, with event: UIEvent?) { view.endEditing(true) } 

从iOS7开始, UIScroll​View和从它inheritance的所有类(包括UITableView )都有一个keyboard​Dismiss​Mode属性。 使用Swift 3和iOS 10, keyboard​Dismiss​Mode具有以下声明:

 var keyboardDismissMode: UIScrollViewKeyboardDismissMode { get set } 

在滚动视图中拖动开始时键盘被关闭的方式。

请注意, UIScrollViewKeyboardDismissMode是一个枚举,它noneinteractiveonDrag情况。


#1。 以编程方式设置UIScrollViewKeyboardDismissMode

下面的代码片段显示了keyboardDismissMode的可能实现:

 override func viewDidLoad() { super.viewDidLoad() // Dismiss keyboard when scrolling the tableView tableView.keyboardDismissMode = UIScrollViewKeyboardDismissMode.interactive /* ... */ } 

#2。 在故事板中设置UIScrollViewKeyboardDismissMode

作为上述编程方法的替代方法,您可以在故事板中UIScrollView设置UIScrollViewKeyboardDismissMode值。

  1. 选择您的UIScrollView / UITableView实例,
  2. 选择属性检查器
  3. 键盘设置正确的值。

在此处输入图像描述