点击下一个文本字段会触发与“完成”键相同的行为吗?

时间:2010-05-20 15:52:57

标签: iphone uikit

我的用户名和密码连续有两个文本字段。当您完成输入用户名后,最自然的事情就是点击下一个文本字段,就像使用网络表单一样。但这不起作用 - 除非您在第一个字段的键盘上按“完成”,然后点击第二个字段,否则无法编辑下一个字段。

我的问题是:是否可以设置两个文本字段,以便您在第一个字段上结束编辑并在点击第二个字段时开始编辑第二个字段?

1 个答案:

答案 0 :(得分:0)

您需要做一些事情:

  1. 跟踪活动文本字段(例如,使用textFieldShouldBeginEditing)

  2. 在View Controller中捕获触摸,如果它们未在活动的textField中出现,则使活动的textField为resignFirstResponder并使新的textField成为FirstFirstResponder。

  3. 以下代码未经测试,但应该是一个很好的起点。请注意,如果您点击活动textField之外的任何其他内容,它也会导致textField失去焦点。

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    
        UITouch *touch = [[event allTouches] anyObject];
        if ([currentTextView isFirstResponder] && [touch view] != currentTextView) {
            [currentTextView resignFirstResponder];
            if ([[touch view] isKindOfClass:[UITextField class]])
                [[touch view] becomeFirstResponder];
        }
        [super touchesBegan:touches withEvent:event];
    }