Для приложения, которое я сейчас разрабатываю, я использую очень быстрый и простой метод:
Добавьте это в заголовочный файл:
// Add in interface
UIWindow * _window;
// Add as property
@property (strong, nonatomic) IBOutlet UIView * _keyboard;
Затем добавьте этот код в нижней части клавиатуры функции WillShow:
-(void) keyboardWillShow: (NSNotification *) notification {
.... // other keyboard will show code //
_window = [UIApplication sharedApplication].windows.lastObject;
[NSTimer scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(allocateKeyboard)
userInfo:nil
repeats:NO];
}
Этот код ищет, когда клавиатура поднята, а затем выделяет текущее окно. Затем я добавил таймер для выделения клавиатуры, так как при распределении сразу возникали некоторые проблемы.
- (void)allocateKeyboard {
if (!_keyboard) {
if (_window.subviews.count) {
// The keyboard is always the 0th subview
_keyboard = _window.subviews[0];
}
}
}
Теперь у нас выделена клавиатура, которая дает вам прямой «доступ» к клавиатуре, когда задается вопрос.
Надеюсь, это поможет