自定义表格视图单元格中的UITextField不再显示键盘,iOS 7

时间:2014-07-02 20:26:28

标签: uitableview ios7 keyboard uitextfield

我有一个为iOS 5构建的应用程序,我试图直接升级到iOS 7,所以这也可能是iOS 6的问题。

我们在自定义表格视图单元格(从UITableCellView派生的类)中有一个UITextField,但点击它不再在模拟器中调出键盘。一切都已启用,并且已启用用户交互已启用。

以前在iOS 5中运行良好。

我不确定要包含哪些代码,但这里是创建单元格的代码... LoginRegisterTableViewCell只有一个' fieldLabel' (UILabel)和' userText' (的UITextField):

    // Login area
    static NSString * reuseIdentifier = @"LoginRegisterTableViewCell";

    LoginRegisterTableViewCell * cell = (LoginRegisterTableViewCell *)[tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
    if(cell == nil)
    {
        // The official Apple way of loading TableViewCell nibs
        // http://www.nomadplanet.fr/2011/01/custom-uitableviewcells-loaded-from-xib-howto-debug/
        [[NSBundle mainBundle] loadNibNamed:@"LoginRegisterTableViewCell" owner:self options:nil];
        cell = formFieldCell;
        self.formFieldCell = nil;
    }

    cell.delegate = self;
    cell.userText.tag = [indexPath row];

如果在选择表格单元格时调用[userText becomeFirstResponder],我可以让键盘出现,但这似乎是一种解决方法而不是正确的方法。

1 个答案:

答案 0 :(得分:1)

使用表格视图数据源:cellForRowAtIndexPath

尝试此代码
    NSString *cellReuseIdentifier = @"CellIdentifier";
    UINib *nib = [UINib nibWithNibName:@"CustomTableViewCell" bundle:nil];
   [_myTableView registerNib:nib forCellReuseIdentifier:cellReuseIdentifier];

    CustomTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellReuseIdentifier];
    if (!cell)
    {
        cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellReuseIdentifier];
    }

    return cell;

使用xib创建的自定义单元格对我有用,如图enter image description here

所示

注意:标记同时创建XIB文件。

并提供像enter image description here

这样的单元格重用标识符

这对我来说非常适用于示例应用程序而没有键盘问题。