У меня есть вид, который должен находиться точно над клавиатурой, но я не использую UITextView, поэтому я не могу использовать inputAccesoryView.
В любом случае, до iOS 5 у меня не было проблем, проблема идет с отсоединенной / разделенной клавиатурой. Теперь мне нужно прослушать изменения в кадре клавиатуры с помощью UIKeyboardWillChangeFrameNotification, поэтому я делаю
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyFrameChanged:)
name:UIKeyboardWillChangeFrameNotification
object:self.view.window];
Таким образом, после перемещения клавиатуры вызывается следующее
- (void) keyFrameChanged:(NSNotification *)notification
{
NSDictionary* userInfo = [notification userInfo];
CGRect keyboardEndFrame;
[[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardEndFrame];
// Animate view with keyboardEndFrame data
}
Проблема в том, что в 99% случаев UIKeyboardFrameEndUserInfoKey возвращает значение NULL, поэтому я не имею понятия о положении клавиатуры.
Спасибо!
PS: Мне удалось прикрепить представление как inputAccesoryView, переопределив это свойство в подклассе моего UIResponder (больше не доступен только для чтения), но я все еще хочу знать, как отслеживать кадр клавиатуры.