使用滑动手势关闭键盘
Posted
技术标签:
【中文标题】使用滑动手势关闭键盘【英文标题】:Dismiss keyboard with swipe gesture 【发布时间】:2015-05-05 00:32:33 【问题描述】:在 Messages.app 中,您可以通过滚动列表视图来关闭键盘。需要明确的是,它不仅仅是响应scrollViewDidScroll
事件。向下滑动时,键盘会随着您的手指移动。知道这是怎么做到的吗?
【问题讨论】:
【参考方案1】:ios 7 起,可以使用
scrollView.keyboardDismissMode = .Interactive
来自文档:
UIScrollViewKeyboardDismissModeInteractive
键盘跟随 将触摸拖出屏幕,再次向上拉可取消 解雇。
【讨论】:
有没有不使用UIScrollView
的方法?
@Zorayr 看看我的回答
@Zorayr 我刚刚添加了一个滚动视图(确保其中包含的视图的高度大于滚动视图),并且它起作用了。设置背景以清除和隐藏滚动指示器,以便用户看不到它。【参考方案2】:
在 XCode 的属性检查器中,scrollView
有一个 Keyboard
属性。它有 3 个选项。
【讨论】:
【参考方案3】:如果您使用的是 tableView
和 Swift 3 或 Swift 4,则可以使用:
tableView.keyboardDismissMode = .onDrag
【讨论】:
【参考方案4】:从 iOS7 开始,UIScrollView
和所有继承自它的类(包括UITableView
)都有一个keyboardDismissMode
属性。在 Swift 5 和 iOS 12 中,keyboardDismissMode
具有以下声明:
var keyboardDismissMode: UIScrollView.KeyboardDismissMode get set
在滚动视图中开始拖动时关闭键盘的方式。
请注意,UIScrollView.KeyboardDismissMode
是一个包含 none
、interactive
和 onDrag
情况的枚举。
#1。以编程方式设置keyboardDismissMode
下面的代码 sn-p 显示了keyboardDismissMode
的可能实现:
override func viewDidLoad()
super.viewDidLoad()
// Dismiss keyboard when scrolling the tableView
tableView.keyboardDismissMode = UIScrollView.KeyboardDismissMode.interactive
/* ... */
#2。在故事板中设置keyboardDismissMode
作为上述编程方法的替代方法,您可以在 故事板 中为 UIScrollView
/UITableView
设置 keyboardDismissMode
值。
-
选择您的
UIScrollView
/ UITableView
实例,
选择属性检查器,
为键盘设置正确的值。
【讨论】:
【参考方案5】:没有 tableview - 是的,它不是滑动,但它不是诀窍
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
view.endEditing(true)
【讨论】:
以上是关于使用滑动手势关闭键盘的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript库,用于创建切换的画布外多级导航,允许无休止地嵌套子菜单元素,支持滑动手势、键盘交互和ARIA属性。