表格视图中文本字段的输入视图

Posted

技术标签:

【中文标题】表格视图中文本字段的输入视图【英文标题】:Input view for textfields in table view 【发布时间】:2011-10-01 14:02:03 【问题描述】:

我有一个 UITableView,每行都有文本字段。

我想以不同的方式访问这些文本字段,例如为一个文本字段添加选择器视图,单击一个文本字段时导航到另一个视图。

我知道当这些文本字段在普通视图中时该怎么做,但我以前从未在 tableview 上做过。

请帮忙。

【问题讨论】:

我不知道在哪里写代码 在普通视图中,如果我们使用文本字段和我使用的选择器视图在 IB 中连接它们,但是如何在此处进行操作,因为这些文本字段在 tableview 中 您是否尝试为 cellForRowAtIndexPath 中的每个文本字段设置标签?比如 textField.tag=indexPath.row ,然后通过标签访问它。 不,我没有。可以发个示例代码吗? 我把上一条评论的代码贴出来了,试试看,然后用[self.view viewWithTag:yourTag];访问textField; 【参考方案1】:

您的问题是在哪里放置代码以处理用户与表格视图单元格的交互。这样做的正确位置是表视图控制器的didSelectRowAtIndexPath: 方法。

但是,有一些警告

您需要将UITextFieldDelegate 协议添加到您的表格视图控制器。 您可以使用标签区分活动的UITextFields,如其他答案中所建议的那样。 但是,回收单元格可能会导致对文本字段的严重混淆。因此,请确保更新 cellForRowAtIndexPath: 中未创建新单元格的部分中的 id 标签。 当您希望弹出另一个控制器时,您应该使用UITextField。在这种情况下,只需使用UILabelUITableViewCell 提供的textLabel 属性。当用户选择行时推送另一个控制器。 如果您希望在不离开表格视图的情况下弹出键盘,请仅使用UITextField

【讨论】:

【参考方案2】:

在为文本字段分配标签时还有一件事,不要忘记这一行

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
   reuseIdentifier:nil] autorelease];

【讨论】:

我能告诉你为什么吗?...我认为这行代码和将标签分配到文本字段没有关系。【参考方案3】:

我认为您需要为每个文本字段添加标签,例如

textfield.tag = indexpath.row;

根据标签你可以继续前进...

【讨论】:

以上是关于表格视图中文本字段的输入视图的主要内容,如果未能解决你的问题,请参考以下文章

如何从动态创建的表格视图单元格的输入字段中将数据检索到数组

根据在单元格中的文本字段中输入的值动态增加表格视图单元格

文本字段标签和表格视图

在表格视图单元格之间移动的文本

iPhone-在表格视图滚动文本字段设置为零

在表格视图的特定单元格中创建文本字段