2011-01-15 13 views
1

In Ordnung, also hier ist, was ich versuche zu tun. Ich habe ein UITextField. Wenn ich es einzeln anklicke, möchte ich eine meiner Methoden aufrufen. Wenn ich zweimal tippe (tippe es zweimal mit 1 Finger), will ich das Textfeld bearbeiten (als hätte ich es einzeln auf ein normales UITextField angetippt).Ändern Standard-Touch-Ereignisse für UITextField

Ich bin mir nicht sicher wie ich das anstellen soll. Ich dachte daran, UITextField zu unterteilen und zu versuchen, das Berührungsereignis abzufangen, während es gesendet wird, aber ich kann nicht herausfinden, welche Methoden zu überschreiben sind, um dies zu tun. Welche Methoden sollte ich außer Kraft setzen und wie?

Oder, wenn es einen besseren Weg gibt, lass es mich wissen! Ich bin ganz Ohr und bin mir nicht sicher, wie es weitergehen soll.

Antwort

4

Dies würde mehrere Schritte beinhalten:

1.) Sie legen eine NSBoolean Eigenschaft, die Spur davon, ob der Benutzer das Feld hat immer schon einmal neu erschlossenen (Sie erhalten zu entscheiden, was hier vor kurzem bedeutet).

2.) Implementieren Sie die Methode textFieldShouldBeginEditing: Methode des dem UITextField zugewiesenen Delegaten. Wenn der Benutzer zweimal hintereinander schnell getippt hat (erkennbar durch Überprüfung, ob die boolesche Eigenschaft wahr ist oder nicht), geben Sie YES zurück. Wenn nicht, rufen Sie Ihre Methode auf und geben Sie dann NO zurück.

+0

Ein Wort der Vorsicht hier. Diese Methode löst in vielen Fällen mehr als nur durch Tippen aus, z. B. beim Drücken der Tabulatortaste auf einer externen Tastatur zum Durchlaufen von Textfeldern. Getestet auf iOS 9. –

Verwandte Themen