【发布时间】:2015-05-05 00:32:33
【问题描述】:
在 Messages.app 中,您可以通过滚动列表视图来关闭键盘。需要明确的是,它不仅仅是响应scrollViewDidScroll 事件。向下滑动时,键盘会随着您的手指移动。知道这是怎么做到的吗?
【问题讨论】:
标签: ios swift uiscrollview
在 Messages.app 中,您可以通过滚动列表视图来关闭键盘。需要明确的是,它不仅仅是响应scrollViewDidScroll 事件。向下滑动时,键盘会随着您的手指移动。知道这是怎么做到的吗?
【问题讨论】:
标签: ios swift uiscrollview
iOS 7 起,可以使用
scrollView.keyboardDismissMode = .Interactive
来自文档:
UIScrollViewKeyboardDismissModeInteractive键盘跟随 将触摸拖出屏幕,再次向上拉可取消 解雇。
【讨论】:
UIScrollView的方法?
在 XCode 的属性检查器中,scrollView 有一个 Keyboard 属性。它有 3 个选项。
【讨论】:
如果您使用的是 tableView 和 Swift 3 或 Swift 4,则可以使用:
tableView.keyboardDismissMode = .onDrag
【讨论】:
从 iOS7 开始,UIScrollView 和所有继承自它的类(包括UITableView)都有一个keyboardDismissMode 属性。在 Swift 5 和 iOS 12 中,keyboardDismissMode 具有以下声明:
var keyboardDismissMode: UIScrollView.KeyboardDismissMode { get set }
在滚动视图中开始拖动时关闭键盘的方式。
请注意,UIScrollView.KeyboardDismissMode 是一个包含 none、interactive 和 onDrag 情况的枚举。
keyboardDismissMode
下面的代码 sn-p 显示了keyboardDismissMode 的可能实现:
override func viewDidLoad() {
super.viewDidLoad()
// Dismiss keyboard when scrolling the tableView
tableView.keyboardDismissMode = UIScrollView.KeyboardDismissMode.interactive
/* ... */
}
keyboardDismissMode
作为上述编程方法的替代方法,您可以在 故事板 中为 UIScrollView/UITableView 设置 keyboardDismissMode 值。
UIScrollView / UITableView 实例,【讨论】:
没有 tableview - 是的,它不是滑动,但它不是诀窍
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}
【讨论】: