Ich rufe einen UIAlertController mit 2 Textfelder (in Obj-C). Ich habe globale UITextFields definiert, die ich in der Warnung verwenden muss, weil ich das UITextFieldDelegate nutzen muss.UIAlertController addTextFieldWithConfigurationHandler mit globaler Variable
Meine Textfelder sind in der .h-Datei als solche definiert.
@property (nonatomic, strong) UITextField *nameField;
@property (nonatomic, strong) UITextField *phoneField;
Gibt es eine Möglichkeit, den addTextFieldWithConfigurationHandler Block von diesem neu zu fassen:
[alert addTextFieldWithConfigurationHandler:^(UITextField *myField) {
myField.delegate = self;
}];
zu so etwas wie diese ... Wo ich das Textfeld zuweisen kann ich früher definierte in diesem Block zu benutzen?
[alert addTextFieldWithConfigurationHandler:^(**nameField**) {
nameField.delegate = self;
}];
Was ich suche, ist, dies zu tun:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if (textField == nameField) {
phoneField.text = @"";
}
if (textField == phoneField) {
nameField.text = @"";
}
}
Wenn ein Feldtext hat, sollte der andere leer sein. Es funktioniert ohne Probleme außerhalb der Alertview ... aber innerhalb des Blocks wird das andere Feld nicht gelöscht.
Jede Hilfe wäre willkommen.
Warum denken Sie, Sie die eingebauten Textfeld mit Ihren eigenen ersetzen müssen? – rmaddy
Da ich eine der Delegate-Methoden in einer bestimmten Weise verwenden muss ... Es wird nicht funktionieren wie es ist. – dbarrett
Sie können das Textfeld nicht durch Ihr eigenes ersetzen. Sie müssen den Delegierten arbeiten lassen. Aktualisieren Sie Ihre Frage mit relevanten Details zu dem Problem, das Sie haben. – rmaddy