Wie kann ich auf Berührungsereignisse auf einem UITextField reagieren?
Will ich reagieren auf touch-Ereignisse (insbesondere UIControlEventTouchUpInside
und UIControlEventTouchUpOutside
) auf eine UITextField
aber die einzige Veranstaltung, die kommt durch UIControlEventTouchCancel
.
Kann ich nicht verwenden UIControlEventEditingDidBegin
weil es nur Auftritt, wenn das Feld den Fokus erhält, das ist nicht das, was ich versuche zu erkennen. Ich möchte wissen, Wann der Benutzer den finger anhebt, und ob es innerhalb oder außerhalb des Textfelds, unabhängig von der aktuellen Fokus Stand.
Kennt jemand einen Weg, dies zu erreichen?
Klar zu sein, ich habe versucht, mit addTarget:action:forControlEvents
und es funktioniert nicht. Das touch-Ereignis wird verhindert, indem die Abbrechen. Ich möchte einen Weg, um erkennen Sie die touch-up - vor die UITextField
konsumiert und produziert das Cancel-Ereignis.
Auch, würde ich mag, um zu vermeiden, keine extra Aufnahmen, wenn möglich.
InformationsquelleAutor der Frage theK42 | 2012-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut einer Runde über Art und Weise, es zu tun, wäre ein UIButton mit der Füllung legen zu löschen, um alle den Raum, und ein UITextField. Berührt der Benutzer in das Textfeld, das text-Feld sollte ein Ereignis senden, und berührt der Benutzer außerhalb des Textfelds, das UIButton senden, um das Ereignis.
InformationsquelleAutor der Antwort brandonbocklund
Gute Antwort hier:
Ändern der Standard-touch-Ereignisse für die UITextField
Verwenden Sie das text-Feld ist, delegieren und tun, was Sie wollen in textFieldShouldBeginEditing:
Können Sie NICHT zurück, um zu verhindern, dass das default-Verhalten.
InformationsquelleAutor der Antwort beev
Können Sie erstellen, die Kategorie für die UiView und überschreiben Sie die touchesBegan meathod wie folgt.
Es ist in Ordnung für mich.Und es ist zu zentralisieren Lösung für dieses problem.
InformationsquelleAutor der Antwort Hiren
Ich habe vor dieses problem nur heute. Mein Ziel war es, textfield ändern die Hintergrundfarbe auf touch-down und wieder zurück auf touch-up/Abbrechen.
Es ist komisch, dass die Note nach unten gesendet wird, um das Ziel von UITextField, aber Sie berühren sich innen, berühren sich außen-und sogar wählen Sie Abbrechen, sind Sie nicht.
Ich habe die Lösung gefunden. Es ist einfach. Erstellen Sie einfach eine Unterklasse von UITextField und überschreiben touchesEnded: und touchesCancelled:.
InformationsquelleAutor der Antwort fnc12
Fügen Sie ein Ziel für Ihren gewünschten event-Programm, oder verwenden Sie IB.
InformationsquelleAutor der Antwort Ryan Crews