在Messages.app中,您可以通过滚动列表视图来关闭键盘。需要说明的是,它并不是简单地回应scrollViewDidScroll
事件。向下滑动时,键盘会用手指跟踪。知道怎么做的吗?
答案 0 :(得分:34)
从iOS 7开始,您可以使用
scrollView.keyboardDismissMode = .Interactive
来自文档:
UIScrollViewKeyboardDismissModeInteractive
键盘跟着 拖动触摸屏幕,并可以再次向上拉取消 解雇。
答案 1 :(得分:11)
在XCode属性检查器中,scrollView
具有Keyboard
属性。它有3个选项。
答案 2 :(得分:4)
如果您使用tableView
和 Swift 3 或 Swift 4 ,则可以使用:
tableView.keyboardDismissMode = .onDrag
答案 3 :(得分:2)
自iOS7起,UIScrollView
以及从中继承的所有类(包括UITableView
)都具有keyboardDismissMode
属性。使用Swift 5和iOS 12,keyboardDismissMode
具有以下声明:
var keyboardDismissMode: UIScrollView.KeyboardDismissMode { get set }
在滚动视图中拖动开始时键盘被解除的方式。
请注意,UIScrollView.KeyboardDismissMode
是包含none
,interactive
和onDrag
个案例的枚举。
keyboardDismissMode
下面的代码段显示了keyboardDismissMode
的可能实现方式:
override func viewDidLoad() {
super.viewDidLoad()
// Dismiss keyboard when scrolling the tableView
tableView.keyboardDismissMode = UIScrollView.KeyboardDismissMode.interactive
/* ... */
}
keyboardDismissMode
作为上述程序化方法的替代方案,您可以在情节提要中为keyboardDismissMode
/ UIScrollView
设置UITableView
值。
答案 4 :(得分:0)
没有tableview - 是的,它不是滑动,但它不是技巧
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}