如何确定正在编辑 UITableView 中的哪个节标题
Posted
技术标签:
【中文标题】如何确定正在编辑 UITableView 中的哪个节标题【英文标题】:How to determine which section header in UITableView is being edited 【发布时间】:2012-03-03 09:30:43 【问题描述】:我在自定义部分标题中有一个 UITextField。有多个部分使用这种样式的标题,因此有多个 UITextField。
我已经实现了 UITextFieldDelegate。当我编辑其中一个 UITextField 时,它会调用委托方法 textFieldDidEndEditing。如何确定此 UITextField 位于哪个节标题?我需要将该值保存到该部分相应 NSManagedObject 中的核心数据中。
在此先感谢
编辑:有几个人建议在创建单元格时使用节号标签,这样可以完美运行。但是,我已经为 UITextField 分配了一个标签,以将其区分为“标题”文本字段,而不是单元格文本字段或“页脚”文本字段。这张桌子上有很多文本字段!
进一步编辑:建议在 indexPath 中使用。如果我能让它工作,这将是我的首选解决方案。有谁知道页眉和页脚是否有 indexPaths?
【问题讨论】:
【参考方案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;
在文本字段委托中,从发送者的父级获取部分索引:
- (void) textFieldDidEndEditing:(UITextField *)textField;
NSInteger theSectionIndex = textField.superview.tag;
// your custom logic here
【讨论】:
你说得对,这会奏效。但是,我应该提到,我已经为 分配了一个标签,以将其与表格单元格中的其他 uitextfields 区分开来。 更新了我的答案。在 sectionView 上设置标签(假设你没有使用它)。【参考方案2】:您可能想查看 UITableView 方法 indexPathForCell:。
您可以通过 UITextField 中的视图层次结构获取单元格,因为它位于单元格的 contentView 中。
问候,
斯文。
【讨论】:
页眉和页脚是否有 indexPaths?如果他们这样做,就会这样做,但我认为只有细胞有它们。 他们没有。对不起,我误读了您提到标题的问题部分。【参考方案3】:这很简单,本·汤普森先生。您在每个 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...
希望对你有所帮助。谢谢。
【讨论】:
由于单元格是在运行时以编程方式创建的,因此它们都是同一单元格的所有实例,因此具有相同的名称。否则是个好建议!【参考方案4】:我相信您将该字段作为自定义视图添加到 tableview
的 viewForHeader
方法的标题中。
我建议使用这样的部分保留字段的标签。
textfield.tag == section;
然后在委托消息中,您可以使用 switch 方法来比较标签..并在那里编写自己的代码
【讨论】:
我应该提到,我在同一个页面上有很多其他 UITextFields 都有不同的标签。我已经为单元格分配了一个标签,以确定它是一个“标题”文本字段。所以我不认为我可以使用标签。 编辑您的问题并添加将标签添加到文本字段的代码...为行添加整个单元格部分。也用于标题视图..以上是关于如何确定正在编辑 UITableView 中的哪个节标题的主要内容,如果未能解决你的问题,请参考以下文章
textViewDidBeginEditing - 确定正在编辑哪个文本框
如何检查 UITableView 中的选定行属于哪个组/部分