iOS 13: Неправильный размер клавиатуры Emoji? - PullRequest
0 голосов
/ 10 июля 2020

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

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)

и

@objc func keyboardWillShow(notification: NSNotification) {
        let current = view.getSelectedTextField()
        
        // is it not visible?
        if(current != nil)
        {
            let frame = self.view.convert(current!.frame, from: current!.superview)
            if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
                let space = CGFloat(16.0)
                let diff = ((self.view.frame.height - keyboardSize.height - space) - (frame.origin.y + frame.height))
                if(diff < 0)
                {
                    self.view.frame.origin.y = diff
                }
            }
        }
    }

, который отлично работает для обычных символьных клавиатур, но для клавиатуры со смайликами высота совершенно неправильная.

Размер клавиатуры эмодзи рассчитывается другим способом?

Спасибо.

1 Ответ

0 голосов
/ 10 июля 2020

Попробуйте добавить ответчик keyboardWillChangeFrameNotification

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChangeFrame(_:)), name: UIResponder.keyboardWillChangeFrameNotification, object: nil)

Вышеупомянутый метод вызывается каждый раз при изменении временного кадра клавиатуры. Вы получаете новый фрейм и соответственно пишете свой код.

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