Swift 4 показать / скрыть клавиатуру при просмотре

Я пытаюсь реализовать функцию "показать / скрыть" на моей клавиатуре, но проблема в том, что когда я показываю свою клавиатуру, она переходит к моему виду и, что более важно, она переходит к моему текстовому полю и кнопке, поэтому я могу печатать, я просто не могу нажмите мою кнопку

Вот скриншоты перед клавиатурой:

и вот когда клавиатура представлена:

как вы видите, я не вижу текстовое поле и кнопку.

Вот мой код в моем viewDidLoad

NotificationCenter.default.addObserver(self, selector: #selector(CommentsController.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(CommentsController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)

и вот методы:

@objc func keyboardWillShow(notification: NSNotification) {
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
          if self.view.frame.origin.y == 0{
              self.view.frame.origin.y -= keyboardSize.height
          }
     }
 }

@objc func keyboardWillHide(notification: NSNotification) {
     if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
          if self.view.frame.origin.y != 0{
              self.view.frame.origin.y += keyboardSize.height
          }
     }
 }

Почему моя клавиатура переходит на мой вид? и как мне это исправить?

1 ответ

Решение

Вам нужно заменить UIKeyboardFrameBeginUserInfoKey с UIKeyboardFrameEndUserInfoKey

Другие вопросы по тегам