我有动态tableView
。有几个单元格有textField
。
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(15,10,260,40)];
textField.delegate = self;
[cell addSubview:textField];
我正试图在indexPath
中获取textFieldDidBeginEditing
。这是我的代码
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
CGPoint location = [self.view.superview convertPoint:self.view.center toView:self.orderTableView];
NSIndexPath *indexPath = [self.orderTableView indexPathForRowAtPoint:location];
NSLog (@"IndexPath %@", indexPath);
NSLog (@"IndexPath.ROW %i", indexPath.row);
}
我有前4个细胞(索引0 - 3)是标准细胞。在前4个单元格之后,我可以使用UITextField动态地拥有最多3个自定义单元格。
UIViewController与UITableView一起出现后,无论我点击的UITextField是什么TableViewCell,NSLog Below都会向我显示以下内容:
2013-07-09 07:21:40.910 MyApp[2884:c07] IndexPath <NSIndexPath 0xa0a5d60> 2 indexes [0, 3]
2013-07-09 07:21:40.910 Mypp[2884:c07] IndexPath.ROW 3
如何使用调用键盘的indexPath
来获取正确的UITextField
个单元格?
答案 0 :(得分:4)
我认为你走在正确的轨道上。但我相信你引用的那一点(视图控制器视图的中心)不会给你一个准确的位置。只要您的文本框架保留在单元格内,我相信这应该可行。
//convert the textfield's frame origin in the cell to frame origin in table view
CGPoint location = [self.tableView convertPoint:textField.frame.origin fromView:textField.superview];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location];