Jon*_*asG 7 objective-c uitableview nsindexpath ios
我需要在NSIndexPath一个自定义单元格中获取UITableView.这里的问题:我送一个NSNotification从我的自定义单元格到我UITableViewController时,editingDidBegin会从一个叫UITextField我的自定义单元格.在我UITableViewController,我调整UITableView时UITextField开始编辑,然后想表视图滚动到电池,其中UITextField的第一个响应者.但我无法弄清楚如何返回正在编辑indexPath的单元格UITextField.我尝试了很多方法,但它仍然没有用.一种方法是这样:在我的cstomCell类中,我使用[self setSelected:YES]和在我的电视控制器中选择行然后如果我NSLog的行[self.tableV indexPathForSelectedRow]总是返回0,即使它总是不为0.
ms8*_*s83 15
只需为单元格赋予其tag属性值即可.然后你可以通过调用它来获取该单元格
UITableViewCell *cell = (UITableViewCell *)[self.tableView viewWithTag:tagValue];
Run Code Online (Sandbox Code Playgroud)
然后,一旦你有了单元格,就可以得到像这样的NSIndexPath
NSIndexPath *indexPath = [self.tableView indexPathForCell:nextResponderCell];
Run Code Online (Sandbox Code Playgroud)
既然你在你的自定义单元格有一个的UITextField可以放置cell.textField.delegate = self;在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
数据源方法.这样您就不必在自定义单元格中设置NSNotification.同样在这个方法中你可以像这样标记单元格文本字段和像这样cell.textField.tag = indexPath.row;的单元格cell.tag = indexPath.row;
现在您已经设置了UITextField委托,现在可以将此方法放在UITableViewController类中
- (void)textFieldDidBeginEditing:(UITextField *)textField {
CustomCell *cell = (CustomCell *)[self.tableView viewWithTag:textField.tag];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
}
Run Code Online (Sandbox Code Playgroud)
上面的UITextField委托方法应该为您当前选择的单元格提供indexPath.