如何在iOS Swift 3中平滑地显示/隐藏键盘?

6
我可以使用 textField.becomeFirstResponder() 来显示键盘,或者使用 textField.resignFirstResponder() 隐藏键盘。在 iPhone 默认消息应用程序中,当我们滚动(或拖动)到底部时,键盘会平稳地隐藏。即使我们开始向上滚动(或拖动)而没有触摸底部,键盘也会动态显示。如果我有一个滚动视图或用户向下拖动,那么我该如何实现呢?enter image description here

3个回答

12

如果你有一个UIScrollView(或者UITableView/UICollectionView,因为它们从UIScrollView继承)你可以简单地将keyboardDismissMode属性设置为interactive

Objective-C:
self.scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;

Swift
self.scrollView.keyboardDismissMode = .interactive

像往常一样,更多文档信息请参考这里。


他们如何能够在文本字段的顶部开始解雇,而不是在键盘的顶部?有没有办法考虑到那个额外的高度? - Stefan
2
@Stefan,你将textfield设置为视图控制器的inputAccessoryView,并通过重写canBeFirstResponder方法并返回true来使视图控制器成为第一响应者。 - Exception

1

当触摸或拖动时轻松解除键盘的方法


0

对于任何继承自UIScrollView的对象,您可以从属性检查器中设置(拖动时关闭)键盘选项,或者使用以下Swift代码:

self.scrollView.keyboardDismissMode = .interactive

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接