我的静态UITableView的单元格中有一些UITextField。获得焦点时,大多数都很好。
但是当某些字段获得焦点时(例如,当我单击“单位否”字段时),单元格会跳转并将像这样覆盖键盘。
完全没有任何线索。任何的想法?感谢。
答案 0 :(得分:2)
尝试使用此广告连播https://github.com/hackiftekhar/IQKeyboardManager,它将涵盖所有键盘方案。
如果您想使用自定义代码,您必须在 viewWillAppear 中订阅 UIKeyboardWillShow 和 UIKeyboardWillHide ,并在 viewWillDisappear <中取消订阅/ strong>即可。在覆盖 touchesBegan 之后,这将处理您在屏幕上的所有触摸,您可以在此功能中结束编辑。
我的示例代码:
override func viewWillAppear(_ animated: Bool) {
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: .UIKeyboardWillHide, object: nil)
}
override func viewWillDisappear(_ animated: Bool) {
NotificationCenter.default.removeObserver(self)
}
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
UIView.animate(withDuration: 1, animations: {
self.view.bounds.origin.y += keyboardSize.height
}
}
}
func keyboardWillHide(notification: NSNotification) {
self.view.bounds.origin.y = 0
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
答案 1 :(得分:0)
您是否尝试过IQKeybordManager POD。它会自动管理所有内容。