Dee*_*pak 14 iphone user-interface objective-c uitableview uitextfield
我在自定义单元格中有两个文本字段如何在textfield委托方法中获取Tableview单元格的索引路径值我想从用户获取输入值并将其保存到relavent对象.用户可以通过单击单元格中的按钮(添加更多)来添加更多单元格.

提前致谢...
sky*_*der 18
更新到iOS7!
使用iOS7中的新功能现在代码应该是:
UITableViewCell *textFieldRowCell;
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
// Load resources for iOS 6.1 or earlier
textFieldRowCell = (UITableViewCell *) textField.superview.superview;
} else {
// Load resources for iOS 7 or later
textFieldRowCell = (UITableViewCell *) textField.superview.superview.superview;
// TextField -> UITableVieCellContentView -> (in iOS 7!)ScrollView -> Whoola!
}
NSIndexPath *indexPath = [self.tableView indexPathForCell:textFieldRowCell];
Run Code Online (Sandbox Code Playgroud)
Dan*_*iel 13
更动态的解决方案(没有硬编码的超级视图级别和不同iOS版本的相同代码).
此外,indexPathForCell:如果单元格不可见,则无法工作,因此我将其indexPathForRowAtPoint:用作解决方法.
//find the UITableViewcell superview
UIView *cell = textField;
while (cell && ![cell isKindOfClass:[UITableViewCell class]])
cell = cell.superview;
//use the UITableViewcell superview to get the NSIndexPath
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:cell.center];
Run Code Online (Sandbox Code Playgroud)
Ker*_*ess 10
这就是我一直在做的事情并且运气好了.我抓住textField框架的原点.将其转换为一个点.然后将该点转换为索引路径.
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
CGPoint origin = textField.frame.origin;
CGPoint point = [textField.superview convertPoint:origin toView:self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:point];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12358 次 |
| 最近记录: |