2012-03-03 30 views
0

我在自定义节标题中有一个UITextField。有多个部分使用这种类型的头文件,因此有多个UITextFields。如何确定正在编辑UITableView中哪个节标题

我已经实现了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 
} 
+0

你是绝对正确的,这将工作。不过,我应该提到,我已经为它指定了一个标记,以便将它与表格单元格中的其他uitextfields区分开来。 – 2012-03-03 10:08:09

+0

更新了我的回答。在sectionView上设置标签(假设您没有使用该标签)。 – Shiki 2012-03-03 10:34:39

+0

传说 - 这将完美的工作! – 2012-03-03 12:58:06

0

你可能会想看看UITableView方法indexPathForCell :.

您可以通过UITextField的视图层次结构获取单元格,因为它位于Cell的contentView中。

Regards,

sven。

+0

做头和页脚有indexPaths?如果他们这样做会做到,但我认为只有细胞有他们。 – 2012-03-03 10:07:28

+0

他们没有。对不起,我误解了你提到标题的部分。 – svena 2012-03-06 12:13:51

0

这是非常简单的本·汤普森先生。你已经命名了不同的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... 
    } 
} 

我希望它能帮助你一点点。谢谢。

+0

由于单元格是以编程方式在运行时创建的,因此它们都是同一个单元的所有实例,因此具有相同的名称。否则一个好建议! – 2012-03-03 10:06:12

+0

如果我有超过200? – 2012-03-03 10:07:06

0

我相信你将该字段作为自定义视图添加到viewForHeader方法的标题中tableview

我建议使用这样的部分保留字段的标签。

textfield.tag == section; 

然后在委托的消息,你可以有一个开关方法来比较tags..and做你自己的代码中有

+0

我应该提到,我有很多其他的UITextFields在同一页上都有不同的标签。我已经为单元格分配了一个标签,以确定它是'header'textField。所以我不认为我可以使用标签。 – 2012-03-03 10:06:57

+0

编辑您的问题,并添加代码添加到文本字段的代码...添加行的整个部分的单元格。也为标题视图.. – Shubhank 2012-03-03 10:24:15