override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: .UIKeyboardWillHide, object: nil)
print("addd observer")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
NotificationCenter.default.removeObserver(self, name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.removeObserver(self, name: .UIKeyboardWillHide, object: nil)
}
func keyboardWillShow(_ sender: Notification) {
let keyboardSize = (sender.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
print("show")
if(activeTectField != Lable_title && keyboard_status == false)
{
boxview.frame.origin.y -= (keyboardSize?.height)!
keyboard_status = true
}
}
func keyboardWillHide(_ sender: Notification) {
let keyboardSize = (sender.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
if(keyboard_status == true){
boxview.frame.origin.y = 0
boxview.layoutIfNeeded()
keyboard_status = false
}
}
Я добавляю наблюдателя для перемещения вида, когда клавиатура всплывает, и она работает сначала, но после нескольких щелчков она не работает.В viewWillAppear()
наблюдатель уже был добавлен, но клавиатура не всплывала, а также keyboardwillshow()
не было запущено.Как я могу решить эту проблему?Любой совет приветствуется