【问题标题】:UITableView not scrolling on becomeFirstResponderUITableView 没有在 becomeFirstResponder 上滚动
【发布时间】:2015-11-13 23:28:58
【问题描述】:

我知道关于这个主题有很多关于堆栈溢出的问题,但我无法找到我的具体问题的答案。我有一个包含多个部分的 UITableView。每个单元格都有一个 UITextField,它被赋予一个标签。在我的 textFieldShouldReturn 函数中,我有一个 switch 语句,它调用下一个单元格的 textField 以成为基于它的标签的第一响应者。

- (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;

}

一切正常,直到我到达单元格位于键盘下方(不可见)的地步。然后返回似乎没有做任何事情,尽管它被调用了。如果我手动滚动到下一个单元格,那么该单元格才会成为第一响应者。我希望让单元格自动在键盘上方滚动。我认为问题可能是每个部分开头的分隔标题视图,但我无法判断。任何见解都会非常有帮助。

【问题讨论】:

    标签: ios objective-c uitableview uitextfield


    【解决方案1】:

    可能不是最佳解决方案,但是由于 UITableView 继承了 UIScrollView,您是否考虑过以编程方式滚动到适当的单元格然后分配响应者?

    或许可以试试:

    [_tableView scrollRectToVisible:CGRectMake(X,Y,WIDTH,HEIGHT)
                               animated:YES];
    

    【讨论】:

    • 我最终选择了 scrollToRowAtIndexPath,得到了 textField 所在单元格的 indexPath,但想法相同。
    猜你喜欢
    • 2011-08-30
    • 2016-03-12
    • 2012-01-07
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多