你如何改变UIControl重点关注iPhone?

时间:2009-01-22 02:39:41

标签: cocoa-touch

我正在尝试做一些我认为很简单的事情。

我有一个包含两个UITextField的表单。我在第一个使用UIReturnKeyNext样式。这个想法是当用户填写第一个字段时,他们单击Next并将它们转换到下一个UITextField。我已经看到其他应用程序执行此操作并且它的效果非常好。但我无法弄清楚如何将焦点设置到下一个字段。

2 个答案:

答案 0 :(得分:9)

简单。将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];
      }

}

答案 1 :(得分:0)

上面的答案很有用,除了你想要从原始文本字段中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];
    }
}