表格视图中文本字段的输入视图
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
。在这种情况下,只需使用UILabel
或UITableViewCell
提供的textLabel
属性。当用户选择行时推送另一个控制器。
如果您希望在不离开表格视图的情况下弹出键盘,请仅使用UITextField
。
【讨论】:
【参考方案2】:在为文本字段分配标签时还有一件事,不要忘记这一行
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:nil] autorelease];
【讨论】:
我能告诉你为什么吗?...我认为这行代码和将标签分配到文本字段没有关系。【参考方案3】:我认为您需要为每个文本字段添加标签,例如
textfield.tag = indexpath.row;
根据标签你可以继续前进...
【讨论】:
以上是关于表格视图中文本字段的输入视图的主要内容,如果未能解决你的问题,请参考以下文章