2010-12-15 8 views
2

J'ai fait une application simple avec deux champs de texte.comment puis-je afficher simultanément des valeurs dans un champ de texte à un autre champ de texte

J'ai besoin d'imprimer dans le deuxième champ de texte même que ce qui est entrer dans le premier champ de texte simultanément.

Pour cela, j'écris le code de jachère.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    [textfield2 setText:textfield1.text]; 

} 

mais il imprime à partir de la deuxième valeur.

par exemple champ de texte 1 = 111;

il est affiché dans le champ de texte comme 11;

quel est le problème.

J'ai besoin de ce qui entre exactement dans le champ de texte1 au champ de texte2 simultanément.

peut tout un pls m'aider.

Merci d'avance.

+2

@MaheshBabu Comme @EvanMulawski a souligné, vous utilisez le gestionnaire d'événements mauvais. Celui que vous utilisez, 'shouldChangeCharactersInRange', arrive ** avant ** le premier champ de texte a changé, c'est pourquoi il commence par" shouldChange ", qui est le futur en anglais, au lieu de" changed ", qui est passé en anglais. –

Répondre

4

Set gestionnaire d'événements (ou utilisez Interface Builder):

[textField1 addTarget:self 
       action:@selector(textFieldEditingDidChange:) 
    forControlEvents:UIControlEventEditingChanged]; 

Méthode:

- (void)textFieldEditingDidChange:(UITextField *)sender 
{ 
    textField2.text = sender.text; 
} 

Lorsque la valeur du champ de texte est modifié, il appelle la méthode ci-dessus, qui définit la valeur du deuxième champ de texte.

code modifié de: Getting the Value of a UITextField as keystrokes are entered?

0

Vous pouvez le faire

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSMutableString *localString = textfield2.text; 
    if([string isEqualToString:@""]){ 
     [localString replaceCharactersInRange:NSMakeRange([localString length]-1, 1) 
            withString:@""]; 
    }else{ 
     [localString appendString:string]; 
    } 
    textfield2.text = localString; 

} 

: D

Questions connexes