我有一个方法, - (void)validateFormInput:(UITextField *)textField在按下表单的“提交”按钮时被调用。该方法执行以下操作:
1)验证给定textField中的文本 2)如果无效,弹出一个警告框,在UITextField周围绘制一个红色边框,并将焦点返回到该UITextField。
问题是我没有将焦点重新放回无效的UITextField。
这是验证方法 - 为什么不将焦点放回无效的UITextField?
谢谢!
//Called when form "submit" button is pressed
-(void)validateFormInput:(UITextField *)textField{
//If Validation fails...
if([textField.text length] <1){
//simple test case
textField.layer.borderWidth = 2.0f;
textField.layer.borderColor = [[UIColor redColor] CGColor];
textField.layer.cornerRadius = 5;
textField.clipsToBounds = YES;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"
message:@"Please add a title"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
alert = nil;
[textField becomeFirstResponder];
}
}
答案 0 :(得分:2)
您需要将委托添加到self并实现委托方法alertView:didDismissWithButtonIndex:。别忘了遵守UIAlertViewDelegate协议。
调用此方法时,请将textField作为第一个响应者。