在TableView中获取customCell的indexPath

时间:2015-07-09 20:15:06

标签: objective-c uitableview didselectrowatindexpath

我在UITextField中有一个customCell。我希望能够获得用户输入的文本。在我的customCell.m文件中,我可以获得使用

输入的文本
[self.aTextField addTarget:self action:@selector(aTextFieldEditing:) forControlEvents:UIControlEventEditingChanged];

但我无法获得indexPath,因此我可以将其保存到包含所有NSMutableArray的{​​{1}}。

在我的UITextField我无法让TableView运行。我也无法使用didSelectRowAtIndexPath方法输出任何内容。如果它有帮助我有textFieldDidBeginEditing部分。

目前我的想法是从TableView获取indexpath.rowindexpath.section并将其保存为extern,以便我可以在customCell.m中访问它

如果我能做到这一点的任何想法或具体例子,我将不胜感激。或者用不同的清洁方式来实现我想要的。

1 个答案:

答案 0 :(得分:1)

您应该能够使用-indexPathForRowAtPoint:上的UITableView方法获取索引路径。

你可以这样做(未经测试):

- (void)aTextFieldEditing:(UITextField *)textField {
    CGPoint convertedPoint = [textField.superview convertPoint:textField.center toView:self.tableView];
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:convertedPoint];
    // Use your index path...
}

编辑:

如果您的单元格正在接收编辑事件,您始终可以定义协议并使视图控制器成为单元格的委托。然后,您可以从aTextFieldEditing方法调用此委托方法并传递单元格。现在您已拥有单元格,您可以在表格视图上调用-indexPathForCell。如果这些都没有意义,请查看委托模式。它在Cocoa / Cocoa Touch中很常见,并且在网上有很好的文档记录。