Удалить уведомление клавиатуры при исчезновении ViewController

#ios #swift #notifications #uikeyboard

#iOS #swift #уведомления #uikeyboard

Вопрос:

Как я могу удалить уведомление с клавиатуры?

Я открываю и закрываю observer на клавиатуре.

Я изменяю размер представления в зависимости от того, открыта или закрыта клавиатура.

Комментарии:

1. self.view.endEditing (true), чтобы просто скрыть клавиатуру

Ответ №1:

Попробуйте это, чтобы удалить наблюдателей открытого показа клавиатуры,

 NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)
  

вы должны удалить наблюдателей либо в deinit , либо viewDidDisappear в соответствии с вашим требованием.

Ответ №2:

Вы можете поместить код в два места.

 override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
        NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)
    }
  

И на этом

 deinit{
      NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
      NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
  

Ответ №3:

попробуйте приведенный ниже код, надеюсь, это сработает для вас

 override func viewDidDisappear(animated: Bool) {
            NSNotificationCenter.defaultCenter().removeObserver(self)
        }