在我的应用程序中,每个单元格内都有一个UITabeView
with UITextField
s。但是,我在实现上一个/下一个按钮以使上一个/下一个内的文本字段UITableViewCell
成为第一响应者时遇到了麻烦。
我已经对该UITableViewCell
类进行了子类化,让它在按下 prev./next 按钮时调用它的某个方法,并将delegate
单元格本身作为该方法的参数传递(所以我可以获取它的索引路径来计算哪个是索引必须将其文本字段设为第一响应者的单元格的路径)
在委托的方法I的实现中:
- 获取按下按钮的单元格的索引路径
- 从该单元格的索引路径中加或减 1(取决于按下的按钮)
-cellForRowAtIndexPath:
使用表格视图上的方法获取其文本字段必须成为第一响应者的单元格- 使文本字段成为第一响应者
问题是该-cellForRowAtIndexPath:
方法仅在单元格可见时才返回单元格。因此,当单元格不可见时,它将返回nil
并且上述算法将不起作用,而当单元格在屏幕上时,它将正常工作。
这是我的上一个代码。按钮,前提是它MUInfoMateriaTableViewCell
是我的子类UITableViewCell
并且它具有textField
返回其文本字段的属性:
- (void)prevButtonPressedInCell:(MUInfoMateriaTableViewCell *)cell
{
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
NSIndexPath *previousIndexPath = [NSIndexPath indexPathForRow:indexPath.row-1 inSection:indexPath.section];
MUInfoMateriaTableViewCell *newCell = (MUInfoMateriaTableViewCell *)[self.tableView cellForRowAtIndexPath:previousIndexPath];
[newCell.textField becomeFirstResponder];
}
有什么方法可以“获取”一个不可见的单元格,以便我可以使其文本字段成为第一响应者?或者你能建议我另一种算法来解决这个问题吗?