目前我在我的故事板中有这个tableview我在我的表中有这个结构
我已经在每个文本字段中放置了一个标签0 - 6,我有这段代码
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
if(textField.returnKeyType == UIReturnKeyNext) {
NSInteger nextTag = textField.tag + 1;
UIResponder* nextResponder = [textField viewWithTag:nextTag];
[nextResponder becomeFirstResponder];
} else if (textField.returnKeyType == UIReturnKeyDone) {
[textField resignFirstResponder];
}
return YES;
}
但由于某种原因,它没有改变到下一个文本字段的任何关于我做错的想法?
答案 0 :(得分:1)
根据the documentation,viewWithTag:
的返回值为:
返回值
接收者层次结构中具有tag属性的视图 匹配tag参数中的值。
您的textField
似乎不太可能是其他文本字段的父视图。您应该在表视图或视图控制器的view
属性中调用它。
答案 1 :(得分:1)
您可以先尝试重新签署旧的第一响应者:
[textField resignFirstResponder];
[nextResponder becomeFirstResponder];
有时它有点棘手,如果这不起作用,你可以试试[textField resignFirstResponder];工作...如果它工作,它是[nextResponder becomeFirstResponder];这不起作用你总是可以延迟尝试:[nextResponder performSelector:@selector(becomeFirstResponder)afterDelay:0.1];
希望它有所帮助...