"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];
Другие вопросы по тегам