Уведомление об изменении высоты клавиатуры iPad - PullRequest
6 голосов
/ 18 августа 2011

Я пытаюсь показать UITextField поверх клавиатуры iPad.

Мне удалось получить высоту клавиатуры, когда она была представлена ​​с уведомлением.

Однако вiPad, изменив язык ввода клавиатуры -> скорее всего, на японский, высота клавиатуры изменилась, потому что на клавиатуре была показана область текстовой гипотезы, из-за которой мое поле UIText скрылось этой областью ....

Кто-нибудь знает, как я могу получить уведомление об изменении высоты или другим способом?

Ответы [ 2 ]

2 голосов
/ 05 сентября 2011

Ответ таков: при переключении языков UIKeyboardDidShowNotification срабатывает при каждом изменении, поэтому вы всегда получаете обновленную высоту.

Смотрите мой ответ здесь о том, как настроить ответы на показ и скрытие и получение высоты.

1 голос
/ 06 апреля 2016

Swift

UIKeyboardDidShowNotification больше не будет срабатывать при изменении размера клавиатуры.

Используйте UIKeyboardWillChangeFrameNotification вместо:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(instance.keyboardWillChange(_:)), name:UIKeyboardWillChangeFrameNotification, object: nil)

у функции:

let targetSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.CGRectValue() 

Важное замечание: это событие также будет запущено, когда клавиатура откроется и будет скрыта, может заменить UIKeyboardWillShowNotification и UIKeyboardWillHideNotification, если нужны только размеры

...