2014-10-20 24 views
5

Klasik bir yapılandırmayla ilgili bir sorunla karşılaştım: kullanıcı adı/parola metin alanları. Özel bir şey yok, sadece 2 UITextFields, bir "Güvenli Metin Girişi" işaretli, bu kadar.iOS 8 - kullanıcı adı UITextField, ilk yanıtlayıcı olduğunda giriş güvenliğini sağlar Parola metin alanı SONRASI

Kullanıcı adı metin alanına dokunduğumda normaldir. Sonra şifre metin alanına dokunduğumda, metin güvenli (büyük noktalar). Ve kullanıcı adı metin alanına tekrar dokunduğumda, her iki metin alanının metni güvenceye alınır!

Kullanıcı adı parolasına tekrar dokunmadan önce parola metin alanının dışına dokunursam, metin hala güvenceye alınmıştır. Ancak, bundan sonra, kullanıcı adı metin alanının dışına ve sonra kullanıcı adı metin alanına tekrar dokunun, metin güvenli değil. Ayrıca, kullanıcı adı metin alanının metni korunurken değiştirirseniz, tekrar normal hale gelir.

Hata, iOS8'de (iOS7 değil) gerçekleşir.

Herhangi bir fikrin var mı? Teşekkürler!

+0

Güvenli metin girişini kodda herhangi bir yere mi ayarlıyorsunuz? – Aaron

+0

Hayır, sadece xib dosyası – APE

+1

onay kutusunu kullanarak aynı sinir bozucu bir hata var. Düşünmeye başladım, bu bir iOS8 hatası olabilir – TMob

cevap

4

Meslektaşım belirtti biraz size yardımcı oluyor umut ve

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

Bu, yalnızca kullanıcı adı ve parola metin alanınızda SAME metniniz olduğunda gerçekleşir. Bu bir iOS8-Bug'tır, ancak bu “gerçek dünya” senaryolarında asla gerçekleşmeyeceği için çok da kötü değildir (yine de güzel bir araba olsa da). Kullanıcı adı artık şifre ile eşleşmediği anda iOS7'de olduğu gibi çalışır.

Bu

0

usernameTextField.tag = 0 çalıştı; passwordTextField.tag = 1;

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

Bu

da yardımcı olabilir.

İlgili konular