"UIKeyboardWillShowNotification" не может быть получено на iPad mini
Я добавил следующий код viewWillAppear:animated
в главном окне контроллера.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKeyboard:) name:UIKeyboardWillShowNotification object:nil];
И я реализовал этот метод в том же классе,
- (void)showKeyboard:(NSNotification *)notification
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Keyboard will appear." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
Контроллер основного вида имеет объект UITextField.
В iPad2 (iOS 5.0) отображается предупреждение, когда оно было сфокусировано. Однако в iPad mini (iOS 6.0) ничего не появляется, кроме программной клавиатуры.
Я хочу, чтобы iPad mini вел себя так же, как iPad2.
Спасибо,
1 ответ
Решение
Начиная с iOS 3.2, UIKeyboardWillHideNotification
а также UIKeyboardWillShowNotification
больше не срабатывает при переключении между двумя текстовыми полями. Как правило, уведомления запускаются только в том случае, если клавиатура действительно показана или скрыта. использование UIKeyboardDidShowNotification
вместо.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidShow:)
name:UIKeyboardDidShowNotification
object:nil];
} else {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];