ios - UITableView 不在 becomeFirstResponder 上滚动

标签 ios objective-c uitableview uitextfield

我知道有很多关于此主题的堆栈溢出问题,但我无法找到我的具体问题的答案。我有一个包含多个部分的 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;

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

最佳答案

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

也许试试:

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

关于ios - UITableView 不在 becomeFirstResponder 上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703351/

相关文章:

ios - AVPlayer播放单声道音频stereo->mono

ios - 在 Alamofire 中使用 get 请求时,如何快速修复无效的 JSON 响应?

ios - 如何获取当前位置的经纬度?

ios - 突出显示 uitextview 显示 inputAccessoryView

ios - UITableView:如何仅针对单元格将 clipsToBounds 设置为 Yes?

ios - 自定义 slider 和自动布局问题

ios - 如何在 Swift 中初始化对象时将 self 传递给初始化器?

objective-c - 高效持续地向核心数据导入海量数据

ios - 为每个实例更改 UITableViewCell 的宽度约束的常量值

ios - TableView 中每个单元格的数据重复