2014-10-20 10 views
5

ho incontrato un problema con una configurazione classica: textfields nome utente/password. Niente di speciale, solo 2 campi UIText, uno con "Secure Text Entry" controllato, il gioco è fatto.iOS 8 - nome utente UITextField protegge l'ingresso quando si diventa first responder dopo il campo di testo Password

Quando si tocca il campo di testo nome utente, è normale. Poi tocco il campo di testo della password, il testo è protetto (grandi punti). E quando tocco di nuovo sul campo di testo del nome utente, il testo di entrambi i campi di testo è protetto!

Se si tocca al di fuori del campo di testo password prima toccando nuovamente il nome utente password, il testo è ancora assicurato. Tuttavia, se in seguito, toccherò di nuovo fuori dal campo di testo del nome utente e di nuovo sul campo di testo del nome utente, il testo non è protetto. Inoltre, se cambio il testo del campo di testo del nome utente mentre è protetto, diventa di nuovo normale.

Bug si verifica su iOS 8 (non iOS7).

Qualche idea? Grazie!

+0

Stai impostando la voce di testo protetta nel codice ovunque? – Aaron

+0

No, basta usare la casella di spunta nel file xib – APE

+1

Ho lo stesso errore frustrante. Inizio a pensare che potrebbe trattarsi di un bug iOS8 – TMob

risposta

4

Il mio collega ha aggiunto che e ha funzionato

-(void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    if (textField == self.usernameText) 
    { 
     self.usernameText.secureTextEntry = YES; 
     self.usernameText.secureTextEntry = NO; 
    } 
} 
1

Questo accade solo quando si dispone il testo STESSO il nome utente e la password campo di testo. Questo è un iOS8-Bug, ma poiché molto probabilmente non succederà mai negli scenari del "mondo reale", non è poi così male (comunque piuttosto buggy). Non appena il nome utente non corrisponde più alla password, funziona come in iOS7.

Spero che questo ti aiuta un po '

0

usernameTextField.tag = 0; passwordTextField.tag = 1;

-(void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    switch(textField.tag) { 
     case 0: 
     textField.secureTextEntry = NO; 
     break; 
     case 1: 
     textField.secureTextEntry = YES; 
     break; 
     default: 
     break; 
    } 
} 

Questo potrebbe anche aiutare.

Problemi correlati