これを行う方法をいくつか見つけました。最初の最も汚い方法は、すぐに を呼び出すことresignFirstResponder
です。それは醜いですが、うまくいきます。
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:@"Button", nil];
[alert setAlertViewStyle:UIAlertViewStylePlainTextInput];
[alert show];
[[alert textFieldAtIndex:0] resignFirstResponder];
2 番目のオプションはUITextFieldDelegate
、具体的にはプロトコルを利用することですtextFieldShouldBeginEditing:
。これを使用して、クラスをアラートのテキスト フィールドのデリゲートとして設定すると、単純に戻っNO
て、キーボードがまったく表示されないようにすることができます。
このメソッド内で何らかの条件を指定しないと、テキスト フィールドを編集できないことに注意してください。
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:@"Button", nil];
[alert setAlertViewStyle:UIAlertViewStylePlainTextInput];
[[alert textFieldAtIndex:0] setDelegate:self];
[alert show];
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
return NO;
}