我在自定义部分标题中有一个UITextField。有多个部分使用这种样式的标题,因此有多个UITextFields。
我已经实现了UITextFieldDelegate。当我编辑其中一个UITextField时,它调用委托方法textFieldDidEndEditing。如何确定此UITextField所在的节标题?我需要将值保存到该部分的相应NSManagedObject中的核心数据。
非常感谢提前
编辑:有些人建议在创建单元格时使用节号的标签,这样可以完美地工作。但是,我已经为UITextField分配了一个标记,将其区分为“标题”文本字段,而不是单元格文本字段或“页脚”文本字段。这张桌子上有很多文本字段!!
进一步编辑:建议在indexPath中使用。如果我可以使用它,这将是我的首选解决方案。有没有人知道页眉和页脚是否有indexPaths?
答案 0 :(得分:1)
您可以使用标记来标识UITextField
个实例。由于您已经在UITextField
个实例中设置了代码,因此请在剖面视图中设置标记:
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *sectionView = ... // your section view instance
// assign the section index as the tag
sectionView.tag = section;
return sectionView;
}
在textfield委托中,从发件人的父级获取部分索引:
- (void) textFieldDidEndEditing:(UITextField *)textField;
{
NSInteger theSectionIndex = textField.superview.tag;
// your custom logic here
}
答案 1 :(得分:0)
您可能希望查看UITableView方法indexPathForCell:。
您可以从UITextField获取单元格视图层次结构,因为它位于Cell的contentView中。
此致
斯文。
答案 2 :(得分:0)
Ben Thompson先生非常简单。你在每个UITextFields之间命名的不同我对吗?只需使用它的名称找到特定的UITextField。
-(void) textFieldDidEndEditing:(UITextField *)textField
{
if (textField == textfieldOne)
{
//Do whatever you want...
}
else if (textField == textfieldTwo)
{
//Do whatever you want...
}
else if (textField == textfieldThree)
{
//Do whatever you want...
}
}
我希望它会对你有所帮助。感谢。
答案 3 :(得分:0)
我相信您将该字段作为自定义视图添加到viewForHeader
tableview
方法的标题中。
我建议使用这样的部分保留字段的标记。
textfield.tag == section;
然后在委托消息中,您可以使用switch方法来比较标记..并在那里执行您自己的代码