0

我正在尝试使用我在此处找到的 @Peylow 代码How to navigate through textfields (Next / Done Buttons)但是当我按下键盘返回按钮时没有任何反应。我的标签没问题。

标题:

- (BOOL)textFieldShouldReturn:(UITextField*)textField;

执行:

- (BOOL)textFieldShouldReturn:(UITextField*)textField {
    NSInteger nextTag = textField.tag + 1;
    UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];

    if (nextResponder) {
        [nextResponder becomeFirstResponder];
    } else {
        [textField resignFirstResponder];
    }
    return NO;
}

我错过了什么?我的键盘没有下一步完成,只有返回。请记住,我对 iOS 很陌生。

编辑:

我尝试通过向其添加断点来调试代码并且代码没有被触发。

4

1 回答 1

2

我不喜欢包含标签的解决方案。相反,我会将所有输入文件按所需顺序放入一个数组中,并-textFieldShouldReturn:使用给定的文本字段从数组中获取它的索引。然后我会在那个索引处得到对象。

- (BOOL)textFieldShouldReturn:(UITextField*)textField {
    NSUInteger nextIndex = [arrayWithResponders indexOfObject:textField]+1 % [arrayWithResponders count];
    UIResponder* nextResponder = [arrayWithTextFields objectAtIndex: nextIndex];

    if (nextResponder) {
        [nextResponder becomeFirstResponder];
    } else {
        [textField resignFirstResponder];
    }
    return NO;
}

You just added, that the breakpoints aren't triggered, so most likely you didn't set up the delegate.

于 2012-10-10T15:58:28.880 回答