Я только что нашел пару способов сделать это. Первым и самым грязным способом было бы сразу позвонить 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];
Второй вариант будет использовать протокол 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;
}
Почему вы не хотите клавиатуры вверх точно? –
Выбор дизайна. –