UITextField verliert Fokus-Ereignis
Habe ich ein UITextField in einem MyCustomUIView Klasse und wenn das UITextField den Fokus verliert, würde ich mag zu verstecken Sie das Feld und zeigen noch etwas anderes statt.
Den Delegierten für die UITextField
eingestellt ist MyCustomUIView
über IB und ich habe auch "Did End On Exit' und 'Bearbeiten am Ende Tat' Ereignisse verweisen auf eine IBAction
Methode innerhalb MyCustomUIView
.
@interface MyCustomUIView : UIView {
IBOutlet UITextField *myTextField;
}
-(IBAction)textFieldLostFocus:(UITextField *)textField;
@end
Jedoch keines dieser Ereignisse scheinen gefeuert, wenn die UITextField den Fokus verliert. Wie kann man trap/Aussehen für dieses Ereignis?
Den Delegierten für die UITextField
wird als MyCustomUIView
also ich erhalte textFieldShouldReturn
Nachricht zum schließen der Tastatur wenn Sie fertig sind.
Aber was mich auch interessiert, ist, herauszufinden, wenn der Benutzer drückt, einen anderen Bereich auf dem Bildschirm (sagen Sie ein anderes Steuerelement oder einfach nur leere Fläche) und das Textfeld hat den Fokus verloren.
InformationsquelleAutor der Frage Alexi Groove | 2009-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie brauchen, um zu benennen, die Ihre Ansicht als ein UITextField delegieren, etwa so:
Als zusätzlichen bonus, das ist, wie man die Tastatur Weg zu gehen, wenn Sie drücken Sie die "fertig" - oder return-Tasten, je nachdem, wie Sie eingestellt haben, dass die Immobilie:
InformationsquelleAutor der Antwort Tim Bowen
Versuchen Sie, delegieren Sie nach der folgenden Methode:
Dass für mich gearbeitet.
InformationsquelleAutor der Antwort user3681049
Das problem mit der resignFirstResponder Lösung ist einzig und allein, dass es kann nur ausgelöst werden, durch eine ausdrückliche Tastatur oder UITextField Veranstaltung.
Ich war auch auf der Suche nach einem "lost-focus-Ereignis", um die Tastatur auszublenden, wenn Sie irgendwo außerhalb der textfield war tippte auf.
Die einzige in der Nähe und praktische "Lösung" stieß ich auf ist, deaktivieren Interaktionen, die für andere Ansichten, bis der Benutzer fertig ist mit dem Bearbeiten (schlagen done/return auf der Tastatur), aber immer noch in der Lage sein zu springen zwischen den Feldern, um Korrekturen, ohne die Notwendigkeit von heraus schieben und in die Tastatur jedes mal.
Dem folgenden snippet vielleicht nützlich für jemanden, der will, das gleiche zu tun:
InformationsquelleAutor der Antwort tosan
Haben Sie vielleicht eine Unterklasse der
UITextField
und überschreibenresignFirstResponder
.resignFirstResponder
aufgerufen wird, werden nur als text-Feld verliert den Fokus.InformationsquelleAutor der Antwort Tom Dalling
denke ich, dass Sie umgesetzt
UIKeyboardDidHideNotification
und in diesem Fall, Sieverwenden Sie code wie
entfernen Sie diesen code.
auch den gleichen code schreiben
textFieldShouldReturn
Methode. auch dieser Fokus verloren.InformationsquelleAutor der Antwort jenish
Für diejenigen, die kämpfen mit diesem in Swift. Wir fügen eine Geste Erkennung der ViewController die Ansicht so, dass, wenn die Ansicht angetippt wird, wir entlassen die textfield. Es ist wichtig, nicht das Abbrechen der anschließenden Klicks auf die anzeigen.
Swift 2.3
InformationsquelleAutor der Antwort lwdthe1