Wie bekommt die Systemtastatur einen Verweis auf das UITextfield, das der Ersthelfer ist?
Es fragt nur das System für den Ersthelfer; Leider ist das eine private UIKit-Methode (oder wurde zuletzt überprüft). Sie können den Ersthelfer finden, indem Sie durch die Ansichtshierarchie rekursiv gehen und jede Ansicht fragen, aber das ist ziemlich ungeschickt.
Stattdessen können Sie einen Link auf das Textfeld auf der Eingabe-Ansicht (Ich gehe davon aus Ihrer Eingabe Ansicht wird eine benutzerdefinierte UIView Unterklasse):
@property(nonatomic, assign) UITextField* target;
dann die Delegierten UITextField verwenden Methoden aus Ihrer Sicht Controller, um zu sehen, wenn das Textfeld fokussiert wird:
- (void)textFieldDidBeginEditing:(UITextField*)textField
{
if ([textField.inputView isKindOfClass:[MyInputView class]])
((MyInputView*)textField.inputView).target = textField;
}
- (void)textFieldDidEndEditing:(UITextField*)textField
{
if ([textField.inputView isKindOfClass:[MyInputView class]])
((MyInputView*)textField.inputView).target = nil;
}
bitte präzisieren, was meinst du mit "direkte Eingabe zurück in das Textfeld"? Sie möchten das UITextField fokussieren? – Dion
Sorry, ich dachte, ich wäre genauer in meiner Erklärung. Was ich meine ist, ich setze die Eigenschaft inputView auf einem UITextField auf meine benutzerdefinierte Eingabeansicht. Also, wenn der Benutzer eine Taste auf meine benutzerdefinierte inputView drückt, wie bekomme ich einen Verweis auf die UITextfield, die der aktuelle Ersthelfer, so dass ich die Texteigenschaft dieses UITextfield ändern kann, um die Eingabe des Benutzers widerzuspiegeln? –