2011-07-14 81 views
1

我有一个警告视图,里面弹出一个文本框,我希望文本框成为第一个响应者并立即显示键盘。为什么UIAlertView中的UITextField成为第一响应者时不显示键盘?

当我使用[summaryField becomeFirstResponder];我在文本字段中闪烁的光标,但键盘不弹出。但是,如果我不让文本成为第一响应者,并且只需在警报显示时单击它就可以弹出键盘。

关于文本字段如何在不显示键盘的情况下成为第一响应者的任何想法?我想这与将文本字段添加为警报视图的子视图有关,但我不知道问题究竟是什么。我的代码如下,没有“becomeFirstResponder”调用。

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]; 

回答

2

尝试UIAlertViewDelegatewillPresentAlertView:方法[textField becomeFirstResponder]

+0

太棒了。我实际上不得不使用“didPresentAlertView”,但如果没有你的答案,我就不会想出来。谢谢! – bennetthansen

+0

当使用Xcode6构建时,即使部署到iOS 7设备,这似乎也不再有效。 – progrmr

相关问题