ios8 UIAlertView becomeFirstResponder for Password UITextField 不起作用

Posted

技术标签:

【中文标题】ios8 UIAlertView becomeFirstResponder for Password UITextField 不起作用【英文标题】:ios8 UIAlertView becomeFirstResponder for Password UITextField not working 【发布时间】:2014-09-23 14:44:23 【问题描述】:

这在 ios7 中运行良好。升级到 iOS8 后,它奇怪地不起作用了。

所以,如果用户之前已经登录过,用户名会被保存并且需要密码。很简单,我只是在 0 索引 UITextField 中输入用户名,并将光标设置在 UIAlertView 的 1 索引 UITextField

在我只需要将becomeFirstResponder 设置为UIAlertView 中的第一个索引UITextField 之前。奇怪的是,我实际上可以将文本设置为数字 1 索引UITextField。所以我知道我仍然可以正确访问UITextField

非常简单的代码。

这是我的代码...

- (IBAction)actionTesting:(id)sender 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login" message:@"" delegate:self cancelButtonTitle:@"Login" otherButtonTitles: nil];
    alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
    alert.tag = 999;

    UITextField *txtUserName = [alert textFieldAtIndex:0];
    UITextField *txtPassword = [alert textFieldAtIndex:1];

    txtUserName.text = @"";
    txtPassword.text = @"";

    [alert textFieldAtIndex:1].delegate = self;
    [alert show];


-(void)didPresentAlertView:(UIAlertView *)alertView
    UITextField *txtUserName = [alertView textFieldAtIndex:0];
    UITextField *txtPassword = [alertView textFieldAtIndex:1];
    txtUserName.text = @"username";
    txtPassword.text = @"password";
    [txtPassword becomeFirstResponder];

看起来我们有一个新的UIAlertController 可用。我只是希望让它工作,所以我现在不必对我的原始代码做任何更改。

【问题讨论】:

UIAlertView's textfield does not show keyboard in iOS8 的可能重复项 你是在模拟器上运行这段代码吗? 【参考方案1】:

Apple 似乎纠正了这个问题。前几天我才注意到该功能正在运行

【讨论】:

uialertview 现在不推荐使用 使用 uialertcontroller

以上是关于ios8 UIAlertView becomeFirstResponder for Password UITextField 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

仅在 iOS8 中,当 App 被锁定为纵向时,UIAlertView 更改为横向

当 SDK 目标为 iOS7 时,UIAlertView 太记账,无法在 iOS8 中替换

ios8 UIAlertView becomeFirstResponder for Password UITextField 不起作用

iOS 8 之后,还能继续使用 UIActionSheet 和 UIAlertView 吗?

如何在 iOS 8 中使用 UIAlertView? [复制]

iPhone iOS8:从 iOS7.1 sdk 构建并在 8.0 及更高版本的设备上运行时,UIAlertView 倒置旋转无法正常工作