如何在UIAlertView中使文本字段“成为第一响应者”

时间:2011-12-27 15:34:24

标签: iphone objective-c ios ipad uialertview

我在UIAlertView中有两个文本字段。我希望第二个成为第一个响应者,这样用户就不必点击它。显示警报视图后,我有以下代码:

[textField becomeFirstResponder];

唯一的问题是它不起作用。第一个文本字段中包含了typer。有任何想法吗?谢谢你的帮助。

3 个答案:

答案 0 :(得分:13)

我在尝试将焦点设置到UIAlertView中的密码字段时遇到了同样的问题(我预先填充了用户名)。我不得不使用委托方法:

- (void)didPresentAlertView:(UIAlertView *)alertView {
    UITextField *textField = [alertView textFieldAtIndex:0];
    [textField becomeFirstResponder];
}

如果我在willPresentAlertView上尝试它,或者当我创建alertView时,它只能在didPresentAlertView上运行。我希望这会有所帮助。

答案 1 :(得分:0)

您必须创建一个警报并向其添加UITextField。然后,您可以将新文本字段指定为第一个响应者,这将使键盘显示警报。

这是一个可能正在寻找的故事。

Alert View with Prompt

答案 2 :(得分:0)

标记的答案是正确的,我只是添加了一些与上述评论相关的更多说明,这里是代码;在使用之前测试该字段是否存在并查看索引0:

my $session_id_cookie = $cookies{$session_key}
   or error("Your session has ended. Please logon again");

my $session_id = $session_id_cookie->value();