令人困惑的是将UITextField链接到UITableViewCell子类

时间:2016-04-23 08:13:19

标签: ios swift uitableview uitextfield iboutlet

我正在创建一个视图控制器,它包含几个不同的字段,用于创建日志条目。为此,我使用了带静态单元格的分组表格视图,如下所示:

enter image description here

在每个单元格中,我添加了一个文本字段(如截屏所示,它有占位符文本)。对于第一个文本字段,我能够使用我创建的UITableViewCell的子类为它创建一个IBOutlet,如下所示:

public class TextInputTableViewCell: UITableViewCell{

     @IBOutlet weak var textField: UITextField!

}

但是,当我尝试对第二个单元格执行相同操作时,请使用以下类:

public class MultipleTextInputTableViewCell: UITableViewCell {

}

它不允许我使用控制点击,或者坦率地说任何其他方法,为文本字段创建一个插座。我已尝试在标识检查器中将单元格设置为“MultipleTextInputTableViewCell”的成员,但这并没有解决问题。我非常仔细地比较了这两种情况,没有发现任何差异,所以我真的很困惑,因为它不适用于第二个细胞。

编辑:

我被要求从身份检查员发布单元格的属性。以下是截图:

enter image description here

2 个答案:

答案 0 :(得分:0)

如果两个单元格都不是静态的,那么它是可能的。如果您使用静态单元格,则无法使用动态。

我认为你应该使用动态原型单元而不是静态单元。它可以解决您的问题:)

答案 1 :(得分:0)

所以我解决了自己的答案,但Stack Overflow不让我再接受它两天。

据我所知,这是一个Xcode错误。

通过手动输入每个插座,然后将行计数器中的连接圈拖到每个文本字段,我就可以连接它们了。但是,我尝试了相反的方法(选项 - 单击从文本字段拖动到编写的代码),但仍然无法正常工作。我正在使用助理编辑器功能来解决这个问题。

编辑:

另外,实际上我刚才发现的答案(我发布这个问题后几个小时)是你可以直接在持有表格视图的视图控制器中创建一个@IBOutlet正在使用静态细胞。没有必要为每个单元格创建子类,我猜Xcode通过不允许它轻松连接来阻止它。此连接可以双向工作,并大大简化了我的项目。但我猜是自己的荣誉。