Ich möchte die Ansicht erhalten, die die erste Antwort ist, derzeit habe ich eine UITableView, die UITextFields enthält, mit einer Methode:
%Vor%Ich möchte in der Lage sein, die Ansicht zu erhalten, die der erste ist, und dann etwas mit dieser Ansicht machen.
Irgendwelche Ideen?
Es gibt keine einfache Möglichkeit, firstResponder
in iOS zu finden. Die obigen Antworten zeigen nur UIView
s an, aber alle Unterklassen von UIResponder
wie UIViewController
können Erstanwender sein.
Nach dem Quick Help
von UIResponder
:
Viele Schlüsselobjekte sind auch Responder, einschließlich der UIApplication Objekt, UIViewController-Objekte und alle UIView-Objekte (die enthält UIWindow). Wenn Ereignisse auftreten, sendet UIKit sie an Ihre Responder-Objekte der App für die Verarbeitung.
Und die einzige Möglichkeit, UIResponder
chain zu folgen, ist UIResponder
's next: UIResponder
property.
Gibt den nächsten Responder in der Responder-Kette oder, falls vorhanden, null zurück kein nächster Responder. Die UIResponder-Klasse speichert oder legt die UIResponder-Klasse nicht fest Next Responder automatisch, also gibt diese Methode standardmäßig nil zurück. Unterklassen müssen diese Methode überschreiben und ein entsprechendes next zurückgeben Antwortgeber. UIView implementiert beispielsweise diese Methode und gibt die Methode zurück UIViewController-Objekt, das es verwaltet (wenn es eins hat) oder sein Superview (wenn nicht). UIViewController implementiert in ähnlicher Weise die Methode und gibt die Superview seiner Ansicht zurück. UIWindow gibt die Anwendungsobjekt. UIApplication gibt nil zurück.
In den meisten UIKit
-Objekten ist superview
, UIViewController
, UIWindow
, UIApplication
oder Appdelegate
die next
UIResponder
.
Allerdings wird oben nicht die Geschwister von responder
angezeigt. Ich denke, wenn Sie wirklich alle verfolgen möchten, müssen Sie den Typ des Responders überprüfen und sein Kind (Unteransicht, Kind-View-Controller) verfolgen.
Ich möchte Ihnen meine Implementierung für die Suche nach dem Ersthelfer an einer beliebigen Stelle von UIView mitteilen. Ich hoffe es hilft und tut mir leid für mein Englisch. Danke
%Vor%Tags und Links iphone ios first-responder