私は作成しました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
れ、アラートデリゲートが呼び出されます。また、アラート デリゲート メソッドを単独で呼び出します。
そのため、表示されるアラートが表示されず、キーボードがポップアップして元に戻ります。したがって、アラートが表示される場合に備えて、アラートは表示されません。
流れに疑問があれば質問してください。
問題を修正するにはどうすればよいですか?