iOS UITextField - Entlassung benutzerdefinierte inputView
Ich bin mit einem benutzerdefinierten inputView für einige textfield, aber wenn ich Anrufe, resignFirstResponder auf das textfield-Objekt, das benutzerdefinierte input-Ansicht nicht entlassen...irgendwelche Vorschläge?
UITextField *f=[[UITextfield alloc] init];
UIView *view=[[UIView alloc] initWithFrame..];
[f setInputView:view]; //random example of how to set a textfields input view to a custom view
Nachdem einige der Forschung, dieses Problem tritt nur auf, wenn die Arbeit mit einem viewController thats präsentiert sich in einem modal anzeigen...es funktioniert ok, ansonsten...
Dank
-Daniel
- durch das benutzerdefinierte Textfeld, das Sie meinen Sie haben ein Objekt von
UITextField
? Kannst du etwas code? - ich meine die inputView Eigenschaft eines UITextfield, überprüfen Sie heraus das code-snippet
- Sind Sie immer noch Probleme mit diesem? Hast du code von wo aus Sie anrufen resignFirstResponder? Denn das sollte funktionieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt
resignFirstResponder
, sollten Sie rufenendEditing:
auf die Ansicht selbst oder eine seiner superviews.endEditing:
Suche alle Untersichten für jede Ansicht, hat first responder-status, und Sie bitten, es zu kündigen.endEditing:
nimmt ein Boolesches flag, das als parameter. Falls gesetzt, wird die Kraft, die first responder zurücktreten; andernfalls können Sie es zu halten Fokus (wenn die Eingabe ungültig ist, zum Beispiel). Für ein UITextField, das ist bestimmt durch die DelegiertenshouldEndEditing:
Methode.Im Allgemeinen, ein gutes Muster zu verwenden ist:
endEditing:
auf eine Ansicht, ist die Muttergesellschaft der first responder-Ansicht. Es ist schwer zu sagen, genau das, was funktioniert, ohne zu wissen, Ihre view-Hierarchie, aber Sie können versuchenself.view.window
oder[[UIApplication sharedApplication] keyWindow]
.Wenn Sie eine modale Ansicht, machen stellen Sie sicher, dass aktivieren Sie die automatische Tastatur der Entlassung. Fügen Sie diesen code in deine view-controller: