麻烦将 UITextField 链接到 UITableViewCell 子类

Posted

技术标签:

【中文标题】麻烦将 UITextField 链接到 UITableViewCell 子类【英文标题】:Troubling linking UITextField to UITableViewCell subclass 【发布时间】:2016-04-23 08:13:18 【问题描述】:

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

在每个单元格中,我添加了一个文本字段(其中包含占位符文本,您可以从屏幕截图中看到)。对于第一个文本字段,我可以使用我创建的 UITableViewCell 的子类为其创建一个 IBOutlet,如下所示:

public class TextInputTableViewCell: UITableViewCell

     @IBOutlet weak var textField: UITextField!


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

public class MultipleTextInputTableViewCell: UITableViewCell 


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

编辑:

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

【问题讨论】:

已将该单元格的类设置为来自身份检查员的MultipleTextInputTableViewCell @Lion 抱歉,这就是我所说的“我已尝试将单元格设置为“MultipleTextInputTableViewCell”的成员,但这并没有解决问题。” 并确保您是 ctrl + 拖动到该寄存器类。 @Lion 相信我,这不是问题,我已经在这工作了好几个小时了。 连接一次后是否删除了任何插座? 【参考方案1】:

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

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

【讨论】:

但是使用静态单元格的全部意义在于,如果我使用动态单元格,那么我仍然无法连接文本字段,因为臭名昭著的错误是“iboutlets 无法连接到重复内容”所以这个不能解决我的问题。我目前还没有决定是否应该 DV 这个答案。 不,如果您为UITablevieCell 的子类的每个单元格创建类并从身份检查器设置它,那么您可以连接插座。你不会得到那个错误。 好吧,那是我的误解。但是,我真的只需要静态单元格的解决方案。【参考方案2】:

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

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

通过手动输入每个插座,然后将行计数器中的连接圆圈拖到每个文本字段,我能够连接它们。但是,我尝试了另一种方式(选项单击从文本字段拖动到书面代码),但仍然没有用。我正在使用助理编辑器功能来执行此操作,因此问题可能就在那里。

编辑:

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

【讨论】:

以上是关于麻烦将 UITextField 链接到 UITableViewCell 子类的主要内容,如果未能解决你的问题,请参考以下文章

哪个 UITextField 委托方法将被调用而无需重新设置键盘?

如何正确地将 UITextField 添加到 UITableViewCell

如果在之前在 UITextField 上键入之前未“加载”,则 UITableViewCell 中的 UITextView 不会显示

UITextField 边框底部不会完全显示

iOS UITableView在过滤时滚动插入

自动布局 UITextField 以适应 UINavigationBar