使用滑动手势关闭键盘

时间:2015-05-05 00:32:33

标签: ios swift uiscrollview

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

5 个答案:

答案 0 :(得分:34)

从iOS 7开始,您可以使用

scrollView.keyboardDismissMode = .Interactive

来自文档:

  

UIScrollViewKeyboardDismissModeInteractive

     

键盘跟着   拖动触摸屏幕,并可以再次向上拉取消   解雇。

答案 1 :(得分:11)

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

  • 不要解雇
  • 关闭拖动
  • 解雇互动。

UIScrollView properties

答案 2 :(得分:4)

如果您使用tableView Swift 3 Swift 4 ,则可以使用:

tableView.keyboardDismissMode = .onDrag

答案 3 :(得分:2)

自iOS7起,UIScroll​View以及从中继承的所有类(包括UITableView)都具有keyboard​Dismiss​Mode属性。使用Swift 5和iOS 12,keyboard​Dismiss​Mode具有以下声明:

var keyboardDismissMode: UIScrollView.KeyboardDismissMode { get set }
  

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

请注意,UIScrollView.KeyboardDismissMode是包含noneinteractiveonDrag个案例的枚举。

#1。以编程方式设置keyboard​Dismiss​Mode

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

override func viewDidLoad() {
    super.viewDidLoad()

    // Dismiss keyboard when scrolling the tableView
    tableView.keyboardDismissMode = UIScrollView.KeyboardDismissMode.interactive

    /* ... */
}

#2。在 storyboard

中设置keyboard​Dismiss​Mode

作为上述程序化方法的替代方案,您可以在情节提要中为keyboard​Dismiss​Mode / UIScrollView设置UITableView值。

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

答案 4 :(得分:0)

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

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