Finden Sicht, die firstresponder
Ich würde gerne die Sicht, die first responder, derzeit ich habe eine UITableView, die enthält UITextFields, mit einer Methode:
-(UIView*) findFirstResponder
{
}
Ich würde gerne in der Lage sein, um die Sicht, die firstResponder tun, und dann etwas mit dieser Ansicht.
Irgendwelche Ideen?
- Wie viele Textfeldern haben Sie in der tableView?
- Sie werden dynamisch erstellt, aber ich fand einen Weg, nur jetzt
- Froh zu wissen, dass, nur poste es als Antwort. 🙂
- Ich empfehle zu schwenken Weg von der for-Schleife-Ansatz, wenn überhaupt möglich, könnte unnötige Verarbeitung. Ein sauberer Ansatz, wir werden um eine variable zu erstellen, lokale oder Instanz, um einen Verweis auf das aktive Objekt, in der Regel in einem delegate-Methode, wie die
UITextFieldDelegate
Methode - (void)textFieldDidBeginEditing:(UITextField *)textField. - Das ist eigentlich nicht schlecht, ich wünschte, ich dachte, dass früher, oh gut, jetzt habe ich ein funktionsfähiges Beispiel zur demo mit, die ich optimieren kann es noch etwas später.
- Es scheint mir, dass der einfachste Weg dies zu erreichen ist zu nennen
UIView* responderView = [[self window] firstResponder];
und dann:if ([responderView isKindOf:[UITextField class]]) { /*do the magic*/ }
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alle die ich tun musste, war
Verwenden UIControl als root Bezug auf verschiedene Arten der Kontrolle, die können sich first responder.
Als Gobot sagt - wenn ein textfield wird first responder, halten Sie eine Notiz, die man es ist...
UITextField
? Es gibtUITextView
s auch, und vielleicht andere...? Versteh mich nicht falsch, das ist eine gute Lösung für die gestellte Frage, aber ich bin auf der Suche nach etwas ein wenig mehr universal.Gibt es keinen einfachen Weg zu finden
firstResponder
im iOS. Die Antworten oben sind nur trackingUIView
s, sondern alle Unterklassen vonUIResponder
wieUIViewController
kann ein first responder.Entsprechend der
Quick Help
vonUIResponder
:Und der einzige Weg zu Folgen
UIResponder
Kette mitUIResponder
'snext: UIResponder
Eigenschaft.In den meisten
UIKit
Objektsuperview
,UIViewController
,UIWindow
,UIApplication
oderAppdelegate
werden dienext
UIResponder
.Jedoch die oben nicht verfolgen
responder
's Geschwister. Ich denke, wenn Sie wirklich wollen, um zu verfolgen alle, die Sie brauchen, um zu überprüfen, die Art der responder und verfolgen Sie Ihr Kind(Untersicht Kind-view-controller).Ich möchte gemeinsam mit Euch meine Umsetzung für finden first responder irgendwo in der UIView. Ich hoffe, es hilft und tut mir Leid für mein Englisch. Dank