2010-10-04 11 views
0

Je suis très nouveau à cela et je suis désolé de poser cette question. J'essaye de faire fonctionner ceci pour mon code mais je ne comprends pas. Tout ce que je semble faire la touche que j'appuie sur apparaît dans le NSLog un coup de clé après. Je sais que le 'shouldChangeCharactersInRange' fonctionne de cette façon et j'ai surfé et essayé de tester certaines solutions que j'ai trouvées. L'un est: Using `textField:shouldChangeCharactersInRange:`, how do I get the text including the current typed character? mais je ne comprends tout simplement pas.Vérifiez UITextField pour les frappes quand ils se produisent, me rendre fou :-)

mon code de test en cours après avoir essayé de le faire au travail et changé de retour:

-(BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string { 
    NSLog(@"%@", MyTextField.text); 

    MyTextField.text = MyTextField.text; 

    return YES; 
} 

myTextField est le champ de texte de type i dans.

Est-ce que quelqu'un pourrait me montrer comment obtenir ce travail afin que je puisse suivre chaque frappe quand ça arrive et pas après?

+0

Solution Swift '' 'func textField (textField: UITextField, plage de shouldChangeCharactersInRange: NSRange, chaîne replacementString: String) -> Bool { let newString = (textField.text comme NSString) .stringByReplacingCharactersInRange (range, withString: string) return true } '' ' –

Répondre

1

Pour voir la clé qui vient d'être pressée, utilisez:

NSLog(@"%@", string); 

Techniquement, cela pourrait être plus d'un caractère, comme avec une coupe, la pâte, ou opération d'annulation.

La valeur du champ de texte ne change réellement qu'après la fin de la méthode. Si vous voulez voir ce que la valeur du champ de texte sera, utilisez

NSLog(@"%@", [MyTextField.text stringByReplacingCharactersInRange:range withString:string); 
+0

Merci beaucoup, ça a fait l'affaire :-) – PeterK