我创建了一个UIAlertView
alert = [[UIAlertView alloc] initWithTitle:@"Test"
message:@"Working"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
alert.tag = kAlertTypePIN;
UITextField *textField = [alert textFieldAtIndex:0];
textField.delegate = self;
如果我在文本字段中按 Retun 键,UIAlertView
它可以正常工作,它会调用:
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[alert dismissWithClickedButtonIndex:0 animated:YES];
}
接着
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
NSLog(@"didDismissWithButtonIndex");
// If no text or wrong text show alert again otherwise normal actions
}
但是,如果我按下取消按钮,它会第一次调用textFieldDidEndEditing
,然后调用警报代表。它再次自己调用警报委托方法。
所以要显示的警报没有显示出来,键盘开始弹出并返回。因此,如果要显示它,则不会显示任何警报。
如果对流程有任何疑问,请问我。
我该如何纠正这个问题?