UIAlertViewのキーボードタイプを変える

iPhoneアプリでユーザに確認を求める場合等によくUIAlertViewを使います。


UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"削除の確認"
                                                    message:@"本当に削除してもいいですか?"
                                                   delegate:self
                                          cancelButtonTitle:@"はい"
                                          otherButtonTitles:@"いいえ", nil];
[alertView show];

confirm.png


AlertViewStyleを変更することで、1行テキストやパスワードの入力欄を表示させることができます。

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"電話番号の入力"
                                                    message:@"電話番号を入力してください。"
                                                   delegate:self
                                          cancelButtonTitle:@"キャンセル"
                                          otherButtonTitles:@"OK", nil];
[alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];
[alertView show];

phone_input.png


ここでは電話番号の入力にしたのでキーボードタイプも電話番号用に変更したいところです。

UIAletViewのインスタンスが保持するテキストフィールドを取得して、キーボードタイプを変更してやります。


UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"電話番号の入力"
                                                    message:@"電話番号を入力してください。"
                                                   delegate:self
                                          cancelButtonTitle:@"キャンセル"
                                          otherButtonTitles:@"OK", nil];
[alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];
UITextField *textField = [alertView textFieldAtIndex:0];        // テキストフィールドを取得(ここではテキストフィールドが1つだけなので最初のインデックス)
textField.keyboardType = UIKeyboardTypePhonePad;                // キーボードタイプを電話番号用に変更
[alertView show];

phone_keybord.png