Wie programmiere ich ein Touch-Ereignis programmatisch auf eine UIButton?
Schreibe ich einige unit-tests und, weil von der Natur dieser speziellen app, es ist wichtig, dass ich bekommen, wie hoch die UI
Kette wie möglich. Also, was ich gerne tun möchte, ist programmgesteuert auslösen, ein Knopf drücken, als hätte der Benutzer die Taste gedrückt, in der GUI
.
(Ja, ja-ich könnte rufen Sie einfach die IBAction
selector aber wieder, die Natur dieser besonderen app ist es wichtig, dass ich gefälschte der eigentlichen Schaltfläche drücken, so dass die IBAction
aufgerufen werden über die Schaltfläche selbst.)
Was ist die bevorzugte Methode, dies zu tun?
InformationsquelleAutor der Frage Olie | 2010-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es stellt sich heraus, dass
hab mir genau, was ich brauchte, in diesem Fall.
EDIT: vergessen Sie nicht, dies zu tun in der Haupt-thread, um die Ergebnisse ähnlich wie eine Benutzer-Presse.
Für Swift 3:
buttonObj.sendActions(for: .touchUpInside)
InformationsquelleAutor der Antwort Olie
Einem update, um diese Antwort für Swift
BEARBEITEN: Aktualisiert für Swift 3
InformationsquelleAutor der Antwort Hellojeffy
Wenn Sie wollen, um diese Art von Tests, die Sie lieben werden die UI-Automatisierung-Unterstützung in iOS 4. Sie können JavaScript schreiben zu simulieren-Taste drückt, etc. ziemlich leicht, obwohl Sie in der Dokumentation (insbesondere der getting-started-Teil) ist etwas spärlich.
InformationsquelleAutor der Antwort Jeff Kelley
In diesem Fall
UIButton
ist abgeleitet vonUIControl
. Dies funktioniert für Objekt abgeleitet ausUIControl
.Wollte ich wiederverwenden "
UIBarButtonItem
" - Aktion auf speziellen Anwendungsfall. HierUIBarButtonItem
bieten nicht die MethodesendActionsForControlEvents:
Aber zum Glück
UIBarButtonItem
Eigenschaften hat, die für Ziel & action.Hier
rightBarButtonItem
ist der TypUIBarButtonItem
.InformationsquelleAutor der Antwort Hitesh Savaliya
Für Xamarin iOS
Referenz
InformationsquelleAutor der Antwort Durai Amuthan.H
Swift 3:
InformationsquelleAutor der Antwort Gobi M