У меня есть приложение, в котором мне нужно прокручивать вверх в случае отображения клавиатуры. чтобы получить размер клавиатуры, я регистрирую событие UIKeyboardWillShowNotification следующим образом:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:self.view.window]
Это работает, проблема в том, что он вызывается после вызова textFieldDidBeginEditing. Итак, я не могу получить фактический размер клавиатуры, но только после того, как поле уже находится в режиме редактирования, что в первую очередь противоречит всей цели регистрации этого события. Я уверен, что вызвал UIKeyboardWillShowNotification, а не UIKeyboardDidShowNotification, хотя их переключение дает одинаковые результаты: сначала был сделан вызов метода делегата, а только затем метод уведомления. Любая идея о том, как это изменить? В настоящее время я жестко кодирую размер, что является очень плохой практикой...
textViewDidBeginEditing
, чтобы использовать его при получении уведомления. - person Joshua Kaden   schedule 14.01.2014