我正在尝试使用我在How to navigate through textfields (Next / Done Buttons)找到的@PeyloW代码,但是当我按下键盘返回按钮时,没有任何反应。我的标签还可以。
部首:
- (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很新。
编辑:
我尝试通过向其添加断点来调试代码,并且代码未被触发。
答案 0 :(得分:2)
我不喜欢包含标签的解决方案。相反,我会将所有inputfileds按所需顺序放入一个数组中,并在-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;
}
您刚刚补充说,没有触发断点,所以很可能您没有设置委托。