我在右半边的自定义tableview单元格上有一个文本字段。当我直接点击文本字段时,我得到了键盘。但当我直接点击牢房时,我正在崩溃。
在表格视图didSelectRowAtIndexPath
方法中,我有代码
[cell.txtField becomeFirstResponder];
在控制台日志中收到以下消息:
no index path for table cell being reused
答案 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
委托。