55 votes

UITextField valeur événement modifié?

Comment puis-je faire en sorte que lorsque le contenu d'un champ de texte change, une fonction soit appelée?

138voto

kovpas Points 5685
[myTextField addTarget:self 
                action:@selector(textFieldDidChange:) 
      forControlEvents:UIControlEventEditingChanged];

26voto

Dmitry Shevchenko Points 11398

En fait, il n'y a pas d'événement de valeur modifiée pour UITextField , utilisez UIControlEventEditingChanged

8voto

Pauls Points 251

J'ai résolu le problème en changeant le comportement de shouldChangeChractersInRange. Si vous renvoyez NON, les modifications ne seront pas appliquées par iOS en interne, mais vous aurez la possibilité de les modifier manuellement et d'effectuer toute action après les modifications.

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    //Replace the string manually in the textbox
    textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
    //perform any logic here now that you are sure the textbox text has changed
    [self didChangeTextInTextField:textField];
    return NO; //this make iOS not to perform any action
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X