在原型表视图单元格中填充文本字段

Posted

技术标签:

【中文标题】在原型表视图单元格中填充文本字段【英文标题】:Populating a text field in a prototype Table View Cell 【发布时间】:2013-12-04 23:28:10 【问题描述】:

提前致歉,因为我对 ios 和 Objective-C 非常,这可能是一个非常基本的问题,但我碰壁了,经过几天的网络搜索,我还是迷路了:

我正在生成一个包含各种不同类型原型单元格的动态表。一种类型只有一个文本字段,用户可以在其中输入或编辑任意字符串。我在 Storyboard Editor 中设计了单元格,因为如果可能的话,我宁愿不以编程方式生成所有内容。

我在一个变量中已经有一个字符串,我想用它来填充文本字段。

您如何处理和填充此字段?我认为答案涉及在使用 dequeueReusableCellWithIdentifier 调用单元格时这样做,但这是我设法得到的……我需要帮助连接这些点。

我已经阅读了 Apple 的“iOS 表视图编程指南”,但对这个问题没有帮助。

(如果我可以将此问题标记为“noob”...)

【问题讨论】:

那么您已经有了一个包含文本字段的单元格原型? 您最好阅读 Apple 的文档(“iOS 的 Table View Programming Guide”)而不是“在网上搜索的日子”。 【参考方案1】:

创建 UITableViewCell 的新子类并将单元格的类设置为此类。 (选择单元格,然后单击身份检查器,左起第三个图标。在此处输入类名:Class)您还需要为单元格指定一个标识符。我经常使用与类相同的名称,所以不要在下面的代码中混淆两者。一个是标识符,一个是类。

在您的 cellForRowAtIndexPath 中,获取您的特殊类的实例。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    static NSString *cellIdentifier = @"EventCell";

    EventCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    [cell populateTextField];

    return cell;

当您打开故事板时,您可以从文本框控制并拖动到您的新类以创建插座属性。 (我们称之为textField)

你的属性在你按住 ctrl-drag 然后在显示对话框时输入后如下所示:

@property (weak, nonatomic) IBOutlet UITextField *textField;

然后在你的新类中,创建 populateTextField 方法:

-(void)populateTextField 
    self.textField.text = @"My special string";

另外请注意,您可以在 textField 上放置占位符文本,因此您可能不需要完成所有这些操作。

【讨论】:

我是否正确假设第一个代码示例位于表视图控制器的类中,第二个/第三个代码示例用于单元格类? 是的。这都是粗略的东西,所以里程可能会有所不同。

以上是关于在原型表视图单元格中填充文本字段的主要内容,如果未能解决你的问题,请参考以下文章

使用来自单独的表视图控制器的选定单元格填充文本字段

在原型单元格中填充文本字段

表格视图单元格中的文本字段

从popover返回后如何在collectionview单元格中填充文本字段

关闭tableviewcontroller中uitableviewcell中文本字段的键盘 - Swift

在 UITableview 中,键入的文本字段值在不同的单元格中重复,如何使用目标 c 纠正它