我试图迅速为iPhone建立输入屏幕。屏幕上有许多输入字段。它们大多数位于屏幕顶部,但三个字段位于底部。当用户尝试在屏幕底部编辑文本时,键盘将弹出并覆盖屏幕。我找到了一种在发生这种情况时将屏幕向上移动的简单解决方案,但是结果是屏幕始终向上移动,并且当用户尝试编辑屏幕时,屏幕顶部的字段超出了范围。 例如:我想要从txt1到txt4的视图不会显示。
有没有办法让屏幕仅在编辑底部字段时移动?
我使用了在这里找到的这段代码:
覆盖func viewDidLoad(){
txt1.delegate = self
txt2.delegate = self
txt3.delegate = self
txt4.delegate = self
txt5.delegate = self
txt6.delegate = self
txt7.delegate = self
txt8.delegate = self
NotificationCenter.default.addobserver(self,selector: #selector(keyboardWillShow(notification:)),name: UIResponder.keyboardWillShowNotification,object: nil)
NotificationCenter.default.addobserver(self,selector: #selector(keyboardWillHide(notification:)),name: UIResponder.keyboardWillHideNotification,object: nil)
}
func keyboardWillShow(通知:Nsnotification){
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectvalue {
if view.frame.origin.y == 0 {
self.view.frame.origin.y -= keyboardSize.height
}
}
}
@objc func keyboardWillHide(notification: Nsnotification) {
if view.frame.origin.y != 0 {
self.view.frame.origin.y = 0
}
}
**