O teclado aparece depois que o UIAlertView é descartado no iOS 8.3 para iPad

Com a versão mais recente do iOS 8.3, nosso aplicativo começa a ter um comportamento estranho.

Após finalizar a edição do campo de texto, o usuário pode clicar no botão Fechar, que exibe umaUIAlertView. Quando o usuário clicadescartar na vista de alerta, a vista de alerta e a vista atual são descartadas. Mas, de alguma forma, o teclado aparece após a exibição, o que é bastante irritante para os usuários.

Após alguma depuração, parece que o teclado é mostrado para o último campo de texto que o usuário acessou antes de fechar a exibição. Eu tentei várias maneiras deendEditing para a visualização atual em muitos lugares (antes de mostrarUIAlertView, depois de clicar em um botão noUIAlertView; Eu até defino o foco para outro elemento da interface do usuário da exibição). Não resolveu o problema.

Mas, para esse problema em particular, não tenho certeza se é um problema comum ou algo que precisamos corrigir. Tudo funciona perfeitamente antes do iOS 8.3.

Entendemos queUIAlertView foi descontinuado para iOS 8. Estamos começando a migrar paraUIAlertController. Mas se houver alguma solução alternativa, gostaríamos de ouvir.

Aqui está um trecho de código.

- (IBAction)closeTapped:(UIButton *)sender
{
    // try to resign first responder
    // [self.tfName resignFirstResponder];
    // [self.tfPosition resignFirstResponder];
    [self.view endEditing:YES];

    if(self.orderDetails.isOpen && self.orderItemChanged)
    {
        UIAlertView* saveAlert = [[UIAlertView alloc] initWithTitle:@"Unsaved Changes"
                                                            message:@"Your changes have not been saved. Discard changes?"
                                                           delegate:self
                                                  cancelButtonTitle:@"Cancel"
                                                  otherButtonTitles:@"Save", @"Discard", nil];
        [saveAlert show];
    }
    else
    {
        [self close];
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    switch(buttonIndex)
    {
        case 1: // Save
        {
            [self save];
            break;
        }
        case 2: // Discard
        {
            [self close];
            break;
        }
    }
}

- (void)close
{   
    [self.delegate dismissEditOrderItemVC];
}

questionAnswers(7)

yourAnswerToTheQuestion