2012-04-11 6 views
1

Erste Veröffentlichung in Stackoverflow, aber seit einiger Zeit nach Antworten gesucht. Lernziel-C & XCode und haben einfache Projekte erstellt. Derzeit wollte ich einen Bildschirm versuchen, wo der Benutzer einen 4-stelligen Passwort-Code eingeben wird, wobei jede einzelne Ziffer in separaten Textfeldern steht. 1) Wie der Cursor im ersten Textfeld angezeigt wird, wodurch die Tastatur beim Starten der App automatisch gestartet wird4-stellige Passwort-Typ-Ansicht: Nummer und Cursor-Steuerung

2) Wie das Textfeld nur eine Ziffer annehmen kann. Können Sie dies in Interface Builder in den Attributen für das Textfeld tun? Oder musst du das programmatisch machen?

3) Wie der Cursor zum nächsten Textfeld springen kann, nachdem das vorherige ausgefüllt wurde. Wird dies automatisch geschehen, wenn Frage Nr. 2 erledigt ist?

Würde mich über jede Hilfe freuen ... danke!

Antwort

3

Ok hier gehen Sie 1. Sie müssen 4 UITextFields in der IB sagen TextField1, TextField2, TextField3, TextField4. und rufe [textField1 wirdFirstResponder]; Dadurch wird der Cursor in Ihrem Textfeld1 angezeigt.

2.To Textfeld nur eine Ziffer machen akzeptieren, werden Sie dies zu tun haben

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 

    textField.text = string; 
    if ([string length] > 0) { 
    if ([textField isEqual:textField1]) { 
     [textField2 becomeFirstResponder]; 

    }else if([textField isEqual:textField2]) { 

     [textField3 becomeFirstResponder]; 

    }else if([textField isEqual:textField3]) { 

     [textField4 becomeFirstResponder]; 

    }else if([textField isEqual:textField4]) { 

     [textField resignFirstResponder]; 
    } 
} 
return FALSE; 

}

Sie müssen dies programmatisch tun.

3.gleich wie ans2.

+0

Perfekt! Ich hatte vor der Veröffentlichung von "findFirstRepsonder" erfahren. Aber du hast meine Frage 2 & 3 beendet. Vielen Dank! – BlizzofOZ

+0

das ist toll, wenn Sie Ihre Antworten erhalten, bitte stellen Sie diesen Beitrag beantwortet. – mChopsey

1

Erstellen Sie ein verstecktes uitextfield, in das Sie tatsächlich eingeben. Erstellen Sie dann vier "gesehene" uitextfields und fügen Sie jedem ein Bullet-Zeichen hinzu, wenn der Benutzer in das ausgeblendete Feld eingibt.

Dies ist der einfachste Weg, um zu tun, was Sie wollen.

+0

Danke für den Vorschlag. Diese Lösung war überraschend schwer zu finden. – rweavere