0

我已经将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(但应该是)。我怎样才能得到这些值?

谢谢

4

2 回答 2

0

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

UITableViewCell *cell = [self.tableView cellForRowAtPoint:[self.activeTextField center]];
于 2013-07-11T15:28:12.793 回答
0

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

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

  1. 如果您将 xib/storyboard 中的文本字段添加到自定义单元格,则它位于 contentView
  2. 如果你这样做,[cell addSubview:]那么在单元格的视图中
  3. 如果您这样做[cell.cotentView addSubView:],则在容器视图中。
于 2013-07-11T15:28:47.983 回答