Frage

Diese Lösung iPhone Empfangen Tastaturereignisse

bietet eine Möglichkeit, das Tastendruckereignis mit Notification Center zu erfassen.

[[NSNotificationCenter defaultCenter] addObserver: Selbstwähler: @selector (KeyPressed :) Name: UITextFieldTextDidChangeNotification Objekt: nil];

[[NSNotificationCenter defaultCenter] addObserver: Selbstwähler: @selector (KeyPressed :) Name: UITextViewTextDidChangeNotification Objekt: nil];

........

- (void) KeyPressed: (NSNotification *) Benachrichtigung {   NSLog ([[Benachrichtigungsobjekt] Text]); }

Es funktioniert ok, aber für jeden Schlüssel, der von der Tastatur der keyPressed Funktion 3 mal aufgerufen wird, gedrückt wird.

Ist das normal oder bin ich etwas falsch?

Teo

War es hilfreich?

Lösung

Die Meldung sollte nur erscheinen einmal pro Taste gedrückt. Mindestens das ist, was ich bei der Prüfung. Das einzige, was ich denken kann, ist, dass Sie addObserver:selector:name:object: dreimal anrufen.

Vielleicht sind Sie es in mehreren View-Controller zu tun und zu Anruf removeObserver:name:object: vergessen?

Oder Sie rufen addObserver:selector:name:object: in einer Funktion, die mehrmals aufgerufen wird? viewDidLoad ist normalerweise ein guter Ort, um Code wie folgt zu setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top