iOS 8中带有文本字段的UIAlertView无法弹出键盘

12

我有一个带有文本框的UIAlertView(UIAlertViewStylePlainTextInput),在iOS 7中它会自动弹出键盘。但是,当我升级到iOS 8时,键盘不再自动弹出,而我必须点击文本框才能使键盘弹出。是否有办法在调用它时恢复UIAlertView文本字段的自动弹出键盘功能?

 UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"" message:@"The amount?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    UITextField * alertTextField = [alert textFieldAtIndex:0];
    alertTextField.keyboardType = UIKeyboardTypeNumberPad;
    [alertTextField setTextAlignment:NSTextAlignmentCenter];
    [alert show];
    [alert release];
更新:[alertTextField becomeFirstResponder];不起作用,也不会...
 [[alert textFieldAtIndex:0] setDelegate:self];
 [[alert textFieldAtIndex:0] becomeFirstResponder];

此外,文本视图中有一个文本字段闪烁指示器,这是有问题的,因为在用户点击文本字段之前,实际上没有自动弹出的键盘。


1
在iOS8中,UIAlertView已被弃用,请使用UIAlertController。以下是在iOS8中显示警报视图的代码:https://developer.apple.com/library/prerelease/ios/samplecode/UICatalog/Introduction/Intro.html - Jageen
Xcode没有让我知道UIAlertView已经被弃用了... - Hamlier Walp
尝试在“- (void)didPresentAlertView:(UIAlertView *)alertView”中。 - KudoCC
@HamlierWalp 看一下 https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAlertController_class/ - Jageen
或者您可以在UIKit>UIAlertView.h中查看,他们写道“UIAlertView已被弃用。请改用preferredStyle为UIAlertControllerStyleAlert的UIAlertController”。 - Jageen
@KudoCC,那个也不行。但还是谢谢你的尝试...还有其他的想法吗?就好像警告视图没有被选中一样,即使有一个文本字段指示器在闪烁... - Hamlier Walp
2个回答

4

我必须在iOS模拟器的硬件->键盘菜单选项中取消选择"连接硬件键盘",才能在iOS 8上运行。


这也发生在我的实际iOS 8手机上。 - Hamlier Walp
这解决了我的问题。 - FireDragonMule

0
如果您在[alert show]之后添加此行代码,它将使键盘弹出。
[alertTextField becomeFirstResponder];

希望这能帮到你


4
很遗憾,那没起作用。 - Hamlier Walp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接