Я использую трюк, чтобы наложить клавиатуру на свою. В основном я добавляю несколько кнопок в качестве подпредставлений на клавиатуре. Вот как я нахожу UIView клавиатуры:
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard;
for(UIView* potentialKeyboard in tempWindow.subviews)
// if the real keyboard-view is found, remember it.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[potentialKeyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
keyboard = potentialKeyboard;
}
else {
if([[potentialKeyboard description] hasPrefix:@"<UIKeyboard"] == YES)
keyboard = potentialKeyboard;
}
Этот метод вызывается UIKeyboardDidShowNotification. Я бы предпочел, чтобы он вызывался UIKeyboardWillShowNotification, поскольку версия «Сделано» отображается после того, как пользователю показана оригинальная клавиатура. Но если я использую ту же процедуру, что и выше, она выдаст ошибку EXC_BAD_ACCESS. Видимо вид клавиатуры не найден должным образом.
Теперь мой вопрос: есть ли способ получить доступ к UIView клавиатуры во время запуска UIKeyboardWillShowNotification.
Заранее спасибо