У меня проблемы с функцией "клавиатураWillShown". Так что я хочу, чтобы мое меню отображалось точно над клавиатурой, когда оно открывается. Он отлично работает на Iphone 8 плюс, 8, 7, 6. Но когда я запускаю Iphone 11 на симуляторе, результат выглядит следующим образом.
Изображение того, как это выглядит в Iphone 11
Ограничения
Вот мой код:
@objc func keyboardWillShown(notification: NSNotification) {
let info = notification.userInfo!
let keyboardFrame: CGRect = (info[UIResponder.keyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
UIView.animate(withDuration: 0.1, animations: { () -> Void in
self.keyboardConstrains.constant = keyboardFrame.size.height
})
}
Функция вызова
override func viewWillAppear(_ animated: Bool) {
NotificationCenter.default.addObserver( self, selector: #selector(keyboardWillShown(notification:)), name: UIResponder.keyboardWillShowNotification, object: nil )
}
override func viewWillDisappear(_ animated: Bool) {
NotificationCenter.default.removeObserver( self,name: UIResponder.keyboardWillShowNotification, object: nil )
}