Когда я нажимаю текстовое поле PassTextField, представление увеличивается в соответствии с назначением
(self.view.frame.origin.y - = 100)
и далее Я нажимаю IDTextField, вид увеличивается, я не предназначен (Это не self.view.frame.origin.y - = 100). Не должно go вверх.
Изображение ошибки - 1: сначала нажмите PassTextField
Изображение ошибки - 2: Нажмите IDTextField после нажатия PassTextField
class LoginViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var IDTextField: UITextField!
@IBOutlet weak var PassTextField: UITextField!
var ActivateTextfield : UITextField!
func textFieldDidBeginEditing(_ textField: UITextField) {
ActivateTextfield = textField
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?){
self.view.endEditing(true)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
ActivateTextfield.resignFirstResponder()
return true
}
override func viewDidLoad() {
super.viewDidLoad()
addKeyboardNotification()
IDTextField.delegate = self
PassTextField.delegate = self
}
}
extension LoginViewController{
func addKeyboardNotification() {
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(_ noti : Notification ){
if let keyboardframe = noti.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue {
let height = keyboardframe.cgRectValue.height
if self.view.frame.origin.y >= 0 {
self.view.frame.origin.y -= 100
}
}
}
@objc func KeyBoardwillHide(_ noti : Notification ){
self.view.frame.origin.y = 0
}
}