我正在尝试做一些我认为很简单的事情。你如何改变UIControl专注于iPhone?
我有一个窗体上有两个UITextFields。第一个使用的是UIReturnKeyNext样式。这个想法是,当用户填写第一个字段时,他们点击下一步,我将它们转换到下一个UITextField。我见过其他的应用程序这样做,它的工作非常好。但我无法弄清楚如何把重点放在下一个领域。
我正在尝试做一些我认为很简单的事情。你如何改变UIControl专注于iPhone?
我有一个窗体上有两个UITextFields。第一个使用的是UIReturnKeyNext样式。这个想法是,当用户填写第一个字段时,他们点击下一步,我将它们转换到下一个UITextField。我见过其他的应用程序这样做,它的工作非常好。但我无法弄清楚如何把重点放在下一个领域。
简单。发送becomeFirstResponder消息到您的其他文本字段。当其他文本字段接受第一响应者状态时,它将从键盘接收信息。
例如:
//called when the next button is pressed
//Assume textField1, 2, and 3 are instances of UITextField
-(IBAction) nextPressed: (id) sender {
if ([textField1 isFirstResponder]) {
[textField2 becomeFirstResponder];
}
if ([textField2 isFirstResponder]) {
[textField3 becomeFirstResponder];
}
}
答案上面,你想从原来的文本字段resignFirstResponder异常的伟大工程。
如果您不退出第一响应者,当下一个字段成为第一响应者时,IOS自动滚动调整将不起作用。 (键盘可能会覆盖下一个文本字段。)
-(IBAction) nextPressed: (id) sender {
//Resign first so that when the next field becomes firstResponder
//the text field will scroll into place if covered by the keyboard
[sender resignFirstResponder];
if ([textField1 isFirstResponder]) {
[textField2 becomeFirstResponder];
}
if ([textField2 isFirstResponder]) {
[textField3 becomeFirstResponder];
}
}
这是我的第一个想法很好,但我被这个文档,其中明确规定becomeFirstResponder用于当他们即将成为以通知UIResponder混淆急救人员。在Mac OSX上,NSResponder禁止直接调用becomeFirstResponder。但是,事实证明你是正确的。 – Andy 2009-01-22 18:26:16
是否将nextPressed链接到每个文本字段(在上面的示例中,将其链接到textField1,2,3)? – HollerTrain 2010-01-03 00:25:21