Question

cette solution Recevoir les événements du clavier iPhone

offre un moyen de capturer l'événement keypress en utilisant le centre de notification.

[[NSNotificationCenter defaultCenter] addObserver: self sélecteur: @selector (keyPressed :) nom: UITextFieldTextDidChangeNotification objet: nil];

[[NSNotificationCenter defaultCenter] addObserver: self sélecteur: @selector (keyPressed :) nom: UITextViewTextDidChangeNotification objet: nil];

........

- (void) keyPressed: (NSNotification *) notification {   NSLog ([[objet de notification] texte]); }

Il fonctionne bien, mais pour chaque clé qui est été pressée à partir du clavier de la fonction keyPressed est appelé 3 fois.

Est-ce normal ou que je fais quelque chose de mal?

Teo

Était-ce utile?

La solution

La notification ne doit apparaître une fois par appui sur une touche. Au moins c'est ce que je reçois lors du test. La seule chose que je peux penser est que vous appelez addObserver:selector:name:object: trois fois.

Peut-être que vous le faites dans plusieurs contrôleurs de vue et oublier d'appeler removeObserver:name:object:?

Ou vous appelez addObserver:selector:name:object: dans une fonction qui est appelée à plusieurs reprises? viewDidLoad est normalement un bon endroit pour mettre le code comme celui-ci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top