在原型表视图单元格中填充文本字段
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单元格中填充文本字段