的UITableView不滚动的becomeFirstResponder
问题描述:
我知道有一些关于这一主题的堆栈溢出的问题,但我一直没能找到答案我的具体问题。我有一个UITableView与多个部分。每个单元格都有一个给定标签的UITextField。在我的textFieldShouldReturn函数中,我有一个switch语句,它根据它的标签调用下一个单元格的textField成为第一个响应者。的UITableView不滚动的becomeFirstResponder
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
switch (textField.tag) {
case FIRST_NAME_FIELD_TAG:
[_catv.lastNameTextField becomeFirstResponder];
break;
case LAST_NAME_FIELD_TAG:
[_catv.emailTextField becomeFirstResponder];
break;
case EMAIL_FIELD_TAG:
[_catv.passwordTextField becomeFirstResponder];
break;
case PASSWORD_FIELD_TAG:
[_catv.phoneNumberTextField becomeFirstResponder];
break;
case PHONE_NUMBER_FIELD_TAG:
[_catv.phoneNumberTextField resignFirstResponder];
[self createAccount];
break;
default:
break;
}
return NO;
}
一切完美,直到我得到的地步细胞是键盘(不可见)的下方。然后,回报似乎没有做任何事情,尽管它被调用。如果我手动滚动到下一个单元格,那么单元格才会成为第一个响应者。我希望单元格可以自动滚动到键盘上方。我认为这个问题可能是每个部分开头处的分隔标题视图,但我无法分辨。任何见解都会非常有帮助。
答
可能不是最佳的解决方案,但由于继承的UITableView UIScrollView的,你有没有考虑编程滚动到相应的单元格,然后指定应答?
也许尝试:
[_tableView scrollRectToVisible:CGRectMake(X,Y,WIDTH,HEIGHT)
animated:YES];
我结束了scrollToRowAtIndexPath去,获得该文本字段是细胞的indexPath但其同样的想法。 – Matt