Sto usando una tastiera in stile "scuro" per il mio campo di testo standard. Si tratta di un campo di testo di accesso o di un campo di testo "dimentica la mia password", in cui l'utente inserisce alcune informazioni, lo invia e, se riesce, viene inviato ad un'altra vista, solitamente mediante un controller di navigazione standard popViewControllerAanimated :. Un AlertView può apparire in mezzo.tastiera ios nera con testo bianco appare dopo cambio di visualizzazione con tastiera aperta
Il problema che ho visto un sacco è che la tastiera è aperta, un colore grigio "dark" normale, e quindi l'utente fa clic su Invia, può apparire una visione avviso, e quando respingendo che i la vista si sposta verso il schermata successiva con la tastiera precedente fuori dallo schermo. Sul nuovo schermo un'altra tastiera di stile predefinita può o non può scorrere verso l'alto e quindi scomparire (senza che un campo di testo sia focalizzato su pari!). Quindi, quando si fa clic su un altro campo di testo, o si torna alla vista precedente e si fa clic in un campo di testo, questa tastiera nera con i tasti bianchi appare erroneamente. Continua a essere visualizzato per i campi di testo fino a quando qualcosa non è in grado di tornare al normale grigio scuro dopo pochi clic.
Ho cercato di ignorare la tastiera originale prima che il popViewController avvenga, in vari modi, ma non sembra aiutare. Se AlertView appare tra parentesi, ho legato il comando popViewController all'azione delegato facendo clic sul pulsante AlertView. La tastiera di solito non scompare abbastanza velocemente da lasciare prima della spinta. Un ritardo non aiuta.
EDIT: L'avviso sembra essere un colpevole preciso qui, interferendo con il pop e la tastiera in qualche modo.
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
[textfield resignFirstResponder];
[self.view endEditing:YES];
return YES;
}
-(IBAction)submitRequest {
[textfield resignFirstResponder];
[self.view endEditing:YES];
// make API call, if call succeeds run this block {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"..."
message:@"..."
delegate:delegate
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
dispatch_async(dispatch_get_main_queue(), ^{
[alert show];
});
// }
}
// delegate after alert OK is pressed
- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
[self.navigationController popViewControllerAnimated:YES];
}
Come posso evitare questo tastiera nera/bianca?
"Ho cercato di nascondere la tastiera originale prima della pushViewController accade, in vari modi, ma non sembra aiutare" Giusto, ma si ottiene una notifica quando la tastiera _has_ è scomparso, quindi perché non avviare la transizione del controller di visualizzazione, quindi? – matt
È una tastiera personalizzata? Per me non sembra una tastiera Apple ... – Blip
Sto usando la normale tastiera grigia "dark" standard in tutta l'app. È un grigio più scuro di quello grigio chiaro predefinito. ma non è un nero come questo. Non uso tastiere personalizzate. – Miro