【发布时间】:2021-05-21 20:57:21
【问题描述】:
tableView.keyboardDismissMode = .onDrag 有一些奇怪的问题。
当textField 点击没问题时,我抬起了我的视线。然后我想像在 iMessage 中一样关闭我的键盘,但在我的情况下,当 keyboardWillHide 通知称为 view.frame.origin.y 不等于 0。它等于 12。有趣的事实是我的代码在模拟器中工作得非常酷,但这个错误只在真正的 iPhone 11 上. 有什么想法吗?
我的带有键盘通知的代码
@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
self.view.frame.origin.y = -keyboardSize.size.height + (self.tabBarController?.tabBar.bounds.height)!
}
}
@objc func keyboardWillHide(notification: NSNotification) {
self.view.frame.origin.y = 0
}
【问题讨论】:
-
您响应键盘显示和隐藏的代码可能过于简单。通常,真实的代码对正在发生的事情要复杂得多。
-
你不是想移动视图控制器的视图吗?太疯狂了。你应该移动一个子视图。另外,自动布局呢?如果您不使用自动布局,则应该使用。但是如果你这样做了,那么你就不能设置视图的框架。
标签: ios swift uitextfield