iPhone - зная размер клавиатуры, когда он уже отображается

Хорошо, Я знаю, что могу прочитать размер клавиатуры с помощью уведомления UIKeyboardWillShowNotification и этого

keybSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

, но это будет доступно только тогда, когда появится клавиатура.

но проблема в следующем: у меня есть окно, которое должно быть настраивается в новое положение, когда клавиатура видна и когда iPhone вращается. Когда я поворачиваю iPhone, оба метода делегата willRotateToInterfaceOrientation и didRotateFromInterfaceOrientation запускаются и обрабатывают поворот. Внутри этих методов мне нужно знать текущую высоту клавиатуры, чтобы я мог правильно расположить представление. Проблема в том, что метод, запускаемый уведомлением UIKeyboardWillShowNotification, запускается после того, как ротация была обработана методами делегата.

Порядок выполнения методов:

  1. willRotateToInterfaceOrientation
  2. didRotateFromInterfaceOrientation
  3. Метод UIKeyboardWillShowNotification

Другими словами, высота клавиатуры просто читается в конце, что означает, что оба метода 1 и 2 будут использовать старую высоту клавиатуры.

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

спасибо

9
задан SpaceDog 28 March 2011 в 18:37
поделиться