我正在调用一个带有2个文本字段的UIAlertController(在Obj-C中)。我已经定义了我需要在警报中使用的全局UITextField,因为我需要利用UITextFieldDelegate。
我的文本字段在.h文件中定义。
@property (nonatomic, strong) UITextField *nameField;
@property (nonatomic, strong) UITextField *phoneField;
有没有办法重新编写addTextFieldWithConfigurationHandler块:
[alert addTextFieldWithConfigurationHandler:^(UITextField *myField) {
myField.delegate = self;
}];
是这样的......我可以在哪里指定我之前定义的文本字段在这个块中使用?
[alert addTextFieldWithConfigurationHandler:^(**nameField**) {
nameField.delegate = self;
}];
我要做的是:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if (textField == nameField) {
phoneField.text = @"";
}
if (textField == phoneField) {
nameField.text = @"";
}
}
如果一个字段有文本,另一个字段应为空白。它在alertview之外工作没有任何问题......但是在块中,它不会清除其他字段。
任何帮助将不胜感激。
答案 0 :(得分:2)
将全局变量指定为块内的指针
[alert addTextFieldWithConfigurationHandler:^(UITextField *aTextField) {
GLOBAL_VARIABLE = aTextField;//<- pointer
aTextField.delegate = self;
}];
然后你可以在回调中正确使用你的条件。
注意:将GLOBAL_VARIABLE
替换为您的全局变量