Finde Ansicht, die der erste Responder ist

7

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?

    
Armand 26.03.2012, 15:00
quelle

4 Antworten

17

Alles, was ich tun musste, war

%Vor%     
Armand 26.03.2012, 15:10
quelle
14

Verwenden Sie UIControl als Stammverweis für verschiedene Steuerelementtypen, die Ersthelfer werden können.

%Vor%

Wie Gobot sagt - wenn ein Textfeld zuerst antwortet, notieren Sie sich, welcher es ist ...

%Vor%     
Damo 26.03.2012 15:23
quelle
1

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 .

%Vor%

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.

    
Ryan 11.08.2017 20:01
quelle
0

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%     
Rubens Iotti 22.09.2015 17:19
quelle

Tags und Links