2 votes

iOS comment savoir si un UILabel a changé de texte

J'ai une question concernant la classe UILabel. Je sais que le contrôle UITextField dispose d'un délégué lorsque l'édition a été modifiée, mais je me demandais si la classe UILabel disposait d'un champ similaire. La raison pour laquelle je demande cela est que mon application interroge le réseau pour savoir quand certains éléments d'information changent et les met à jour en conséquence, et je ne veux pas coder en dur dans ma mise à jour le nom du label que je veux surveiller juste pour effectuer une petite tâche à son sujet. Je ne veux pas coder en dur dans ma mise à jour le nom de l'étiquette que je veux surveiller juste pour effectuer une petite tâche la concernant. Si elle a un délégué ou quelque chose d'équivalent pour que ma classe puisse surveiller cette information, ce serait génial.

Si ce n'est pas le cas, tout conseil serait grandement apprécié.

19voto

Artanis Points 3364

Vous pouvez utiliser KVO pour trouver ou exécuter un code lorsque le texte change comme ceci :

[somelabel addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew context:NULL];

puis écoutez les changements comme suit

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

    NSLog(@"the text changed");
}

1voto

mattjgalloway Points 24217

A UILabel ne peut pas changer son texte sans que votre code ne le fasse, alors pourquoi y aurait-il un délégué qui vous dirait quand il a changé ? Vous le savez déjà... UITextField en possède un car l'utilisateur peut modifier le texte, ce qui vous permet d'être averti en cas de changement.

En résumé, non, il n'y a pas de méthode de délégation et vous ne devriez même pas en avoir besoin.

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