Сбой при поднятии клавиатуры на 13,1 - PullRequest
0 голосов
/ 20 октября 2019

У меня есть следующий код, когда вы нажимаете на UITextView, он будет отображаться при отображении клавиатуры.

Это код в моем ViewDidLoad()

NotificationCenter.default.addObserver(self, selector:
#selector(ViewController.keyboardWillShow), name: NSNotification.Name.UIKeyboardDidShow, object: nil)

NotificationCenter.default.addObserver(self, selector:
 #selector(ViewController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
            self.hideKeyboardWhenTappedAround()

У меня есть следующее расширение

extension UIViewController {
    func hideKeyboardWhenTappedAround() {
        let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
        tap.cancelsTouchesInView = false
        view.addGestureRecognizer(tap)
    }

    @objc func dismissKeyboard() {
        view.endEditing(true)
    }
}

И, наконец, у меня есть следующее для скрытия и показаклавиатура.

@objc func keyboardWillShow(notification: NSNotification){
    guard let userInfo = notification.userInfo else {return}
    guard let keyboardSize = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue else {return}

    let keyboardFrame = keyboardSize.cgRectValue
    if (self.view.frame.origin.y == 0) {
        self.view.frame.origin.y -= 175
    }
}

@objc func keyboardWillHide(notification: NSNotification) {
    if (self.view.frame.origin.y != 0) {
        self.view.frame.origin.y = 0
    }
}

Есть ли лучший способ поднять интерфейс, когда клавиатура подходит для OS13.1 +

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...