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