【发布时间】:2017-02-22 23:53:38
【问题描述】:
我在 UIAlertView 中有两个文本字段。我希望第二个成为第一响应者,这样用户就不必点击它。显示警报视图后,我有以下代码:
[textField becomeFirstResponder];
唯一的问题是它不起作用。第一个文本字段中有打字机。有任何想法吗?感谢您的帮助。
【问题讨论】:
标签: iphone objective-c ios ipad uialertview
我在 UIAlertView 中有两个文本字段。我希望第二个成为第一响应者,这样用户就不必点击它。显示警报视图后,我有以下代码:
[textField becomeFirstResponder];
唯一的问题是它不起作用。第一个文本字段中有打字机。有任何想法吗?感谢您的帮助。
【问题讨论】:
标签: iphone objective-c ios ipad uialertview
我在尝试将焦点设置到 UIAlertView 中的密码字段时遇到了同样的问题(我正在预先填充用户名)。我不得不使用委托方法:
- (void)didPresentAlertView:(UIAlertView *)alertView {
UITextField *textField = [alertView textFieldAtIndex:0];
[textField becomeFirstResponder];
}
如果我在 willPresentAlertView 上尝试过,或者当我创建 alertView 时,它不起作用,只能在 didPresentAlertView 上尝试。我希望这会有所帮助。
【讨论】:
UIAlertViewStyleLoginAndPasswordInput AlertView 样式。只希望我没有看到它改变领域。虽然在 willPresent 中尝试过,但它不会承认该字段。
您必须创建一个警报并向其添加一个 UITextField。然后,您可以将新的文本字段指定为您的第一响应者,这将在键盘上显示您的警报。
这可能是您正在寻找的故事。
【讨论】:
标记的答案是正确的,我只是添加了与我上面的评论相关的更多说明,这是代码;在使用之前测试该字段是否存在并查看索引 0:
if ([alertView textFieldAtIndex:0])
{
UITextField *textfield = [alertView textFieldAtIndex:0];
[textfield becomeFirstResponder];
}
【讨论】: