Obtenir la Valeur d'un objet UITextField que les frappes sont entrés?
Disons que j'ai le code suivant:
IBOutlet UITextField* nameTextField;
IBOutlet UILabel* greetingLabel;
J'aimerais le greetingLabel
lire "Bonjour [nameTextField]" dès que l'utilisateur appuie sur une touche quelconque.
Ce dont j'ai besoin est fondamentalement l'iPhone équivalent du Cacao délégué méthode controlTextDidChange
.
La textField:shouldChangeCharactersInRange:
délégué méthode est appelée à chaque fois qu'une séquence de touches qui se produit:
- (BOOL) textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
La chaîne argument renvoie le caractère qui est pressé. La réelle textField
s'valeur (nameTextField.text
) reste vide cependant.
Ce qui me manque ici? (J'aimerais nameTextField
de refléter l'exacte chaîne de caractères que l'utilisateur a entré jusqu'à présent).
Vous devez vous connecter pour publier un commentaire.
Il s'avère le moyen le plus simple pour ce faire est d'utiliser Interface Builder:
Fonctionne comme un charme 🙂 (je ne peux pas croire que j'ai passé de nombreux jours sur ce, et de réaliser maintenant que la solution est beaucoup plus simple que je ne l'aurais pensé :P)
[textField addTarget:self action:@selector(textFieldEditingChanged:) forControlEvents:UIControlEventEditingChanged]
;).vous pourriez inscrire une action pour l'événement UIControlEventEditingChanges sur le champ de texte:
...
UITextField
a une notificationUITextFieldTextDidChange
qui sera déclenché à chaque fois que le texte des modifications si vous vous inscrivez pour elle. Il suffit de s'inscrire pour que la notification et dans la méthode appelée par la notification, changer le texte de l'étiquette.Pour ajouter à cela, l'objet passé en à votre gestionnaire de notification contiendra le texte de la
UITextField
.Espère que ça aide.