尝试获取单元格中文本字段的行数和部分数

时间:2013-07-11 15:23:43

标签: ios uitableview row nsindexpath

我有一个分组UITableView,其中有几个自定义单元格,我放置了文本字段。我已经定义了一个指向当前活动的文本字段的属性:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
   self.activeTextField = textField;
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
   self.activeTextField = nil;
}

我需要获取包含此类文本字段的单元格的行和部分。我试过这个:

UITableViewCell *parentCell = (UITableViewCell *)[self.activeTextField superview];
NSIndexPath* cellPath = [self.tableView indexPathForCell:parentCell];
NSInteger cellRow = [cellPath row];

但我总是得到0.看起来parentCell实际上不是UITableViewCell(但应该是)。我怎样才能获得这些价值观?

由于

2 个答案:

答案 0 :(得分:0)

完全不确定它是否有效,但您可以尝试:

UITableViewCell *cell = [self.tableView cellForRowAtPoint:[self.activeTextField center]];

答案 1 :(得分:0)

如果要将文本视图添加到单元格的容器视图中,则必须调用self.activeTextField.superview.superview。如果没有,self.activeTextField.superview应该有效。

为了确定您的文本字段是否已添加到容器视图的单元格中:

  1. 如果您将文本字段从xib / storyboard添加到自定义单元格,则它位于contentView
  2. 如果您[cell addSubview:],则在单元格视图中
  3. 如果您执行[cell.cotentView addSubView:],则处于容器视图中。