swift - 显示键盘时,文本字段会从视图中消失
问题描述
我有一个带有自定义单元格计数文本字段的视图控制器。我正在使用下面的代码进行键盘管理,但视图上半部分的文本字段会向上和超出视图。键盘将视图向上移动,将这些文本字段推到视图的顶部边缘之外。
我正在使用以下代码进行键盘管理:
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
}
还有以下功能:
@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y == 0 {
self.view.frame.origin.y -= keyboardSize.height
}
}
}
@objc func keyboardWillHide(notification: NSNotification) {
if self.view.frame.origin.y != 0 {
self.view.frame.origin.y = 0
}
}
任何帮助将不胜感激!
解决方案
请使用 pod 'IQKeyboardManagerSwift' 并将代码粘贴到 appdelegate
import IQKeyboardManagerSwift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
IQKeyboardManager.shared.enable = true
return true
}
推荐阅读
- flutter - Flutter Gesture Detector onTap 不工作,但双击工作
- python - 如何在 KivyMD、Python 中制作下拉菜单
- android - 在 MainActivity(根 @Composable)中显示来自任何子可组合(Jetpack Compose)的 Snackbar
- python - 试图将嵌套的 json 数据提取到垂直列表中
- bash - 在linux中对du命令进行排序
- javascript - 如何在 Next.js 的 pages 文件夹中获取动态路由路径?
- windows - 如何找到单词 A 和单词 B 之间的字符串?
- android - 如何在 ModalDrawer (Jetpack compose) 中更改抽屉尺寸?
- jquery - 使用 laravel 8 在刀片视图中未定义的变量
- vb.net - 如何在 vb.net 中显示应用程序的版本号?