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];
}