Почему не отображается клавиатура, когда я делаю UITextField в UIAlertView первым респондентом?

У меня есть окно предупреждения, которое появляется с текстовым полем внутри, и я хочу, чтобы текстовое поле стало первым респондентом и немедленно отображало клавиатуру.

Когда я использую [summaryField статьFirstResponder]; Я вижу мигающий курсор в текстовом поле, но клавиатура не появляется. Однако, если я не сделаю текст первым респондентом, а вместо этого просто щелкну внутри него, когда появится предупреждение, клавиатура действительно появится.

Есть идеи, как текстовое поле может стать первым респондентом, не показывая клавиатуру? Я предполагаю, что это как-то связано с тем, что текстовое поле добавляется в качестве подпредставления в представление предупреждений, но я не знаю, в чем именно проблема. Мой код ниже, без вызова "статьFirstResponder".

UIAlertView *titleAlert = [[UIAlertView alloc] initWithTitle:@"Enter title" message:@" "     
    delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
summaryField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
[summaryField setBackgroundColor:[UIColor whiteColor]];
[titleAlert addSubview:summaryField];
[titleAlert show];
[titleAlert release];
[summaryField release];

person bennetthansen    schedule 14.07.2011    source источник


Ответы (1)


попробуйте [textField becomeFirstResponder] в UIAlertViewDelegate willPresentAlertView: методе.

person Rahul Vyas    schedule 14.07.2011
comment
Потрясающие. Мне действительно пришлось использовать didPresentAlertView, но я бы не понял этого без вашего ответа. Спасибо! - person bennetthansen; 14.07.2011
comment
Похоже, что это больше не работает при сборке с Xcode6, даже при развертывании на устройстве iOS 7. - person progrmr; 07.10.2014