2016-05-09 12 views
0

Bei Verwendung von Secure Text Entry in einem UITextField wird der Text überschrieben, wenn ich einen Text eingegeben habe, in ein anderes Textfeld gegangen bin und zurückkomme und ohne Zurückschreiben zu schreiben beginne.Detect UITextField Secure Text Entry überschriebener Text

Jetzt Im unter Verwendung der folgenden Spur des eingegebenen Textes zu halten:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSString *text = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
} 

Aber im Fall oben, tut das Ereignis zu verfolgen, dass das Textfeld so gelöscht wurde, kann ich nicht immer darauf verlassen, auf der Saite text

Irgendwelche guten Tipps?

+0

, wenn Sie Text in Textfeld, dass die Zeit immer klar Kästchen ein. – iOS

+0

versuchen, Textfeld mit zu löschen - (BOOL) textFieldShouldBeginEditing: (UITextField *) textField; – iOS

+0

@Darji Ich benutze 'Secure Text Entry', die meinen Text wie beabsichtigt verbirgt. – Nam

Antwort

2

Okay, ich änderte einfach die Logik als Spur Textfeld mit diesem Ereignis ändert statt:

[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

textFieldDidChange wird jedes Mal, wenn die Textänderungen aufgerufen werden.

+0

guter Fang! gut gedacht –

+0

Ein wahrer Lebensretter. Danke Kumpel. Ich schätze das sehr. :) – Tulon

0

ich kann Ihnen eine einfache Möglichkeit, es in der Xcode selbst tun.

Select <code>Clear when editing begins</code> checkbox

Select Clear when editing begins Checkbox

Select <code>Secure</code> checkbox

Select Secure Checkbox

+0

Das funktioniert nicht - der Text ist nicht korrekt in 'shouldChangeCharactersInRange' – Nam

Verwandte Themen