UITextField在UITableViewCell中崩溃

时间:2014-03-13 12:58:49

标签: ios objective-c uitableview uitextfield

我在右半边的自定义tableview单元格上有一个文本字段。当我直接点击文本字段时,我得到了键盘。但当我直接点击牢房时,我正在崩溃。

在表格视图didSelectRowAtIndexPath方法中,我有代码

[cell.txtField becomeFirstResponder];

在控制台日志中收到以下消息:

no index path for table cell being reused

Reference crash here

2 个答案:

答案 0 :(得分:0)

在您的屏幕截图中,您正在呼叫:

[cell.txvalue becomeFirstResponder];

你的意思是:

[cell.textField becomeFirstResponder]; 

我猜测cell.textValue是一个字符串?

对于控制台日志,您是否在textview上调用了setClearsOnInsertion属性?

答案 1 :(得分:0)

首先,您可以创建配置单元格,如下所示

 - (void)configureCellAcountSet:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
  {

    UITextField *txt_UserName = [[UITextField alloc] initWithFrame:CGRectMake(85, 105, 150, 25)];
    txt_UserName.borderStyle = UITextBorderStyleRoundedRect;
    txt_UserName.font = [UIFont systemFontOfSize:13];
    txt_UserName.autocorrectionType = UITextAutocorrectionTypeNo;
    txt_UserName.keyboardType = UIKeyboardTypeDefault;
    txt_UserName.returnKeyType = UIReturnKeyDone;
    txt_UserName.clearButtonMode = UITextFieldViewModeWhileEditing;
    txt_UserName.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    txt_UserName.delegate = self;
    [[cell contentView] addSubview:txt_UserName];

  }

在表中删除配置单元格后删除mehode。不做任何事情didSelectRowAtIndexPath。当你点击文本字段时,它会打开键盘并点击单元格,没有在那里完成任务。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {

           static NSString *simpleTableIdentifier = @"section0";
            tbl_setting.layer.cornerRadius = 10.0;
            UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
            //if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
            cell.selectionStyle = UITableViewCellSelectionStyleNone;

            [self configureCellAcountSet:cell atIndexPath:indexPath];

  }

您必须实施UITextField委托。