笔尖已装好,插座不见了

Posted

技术标签:

【中文标题】笔尖已装好,插座不见了【英文标题】:Nib loaded, outlets missing 【发布时间】:2015-04-12 02:39:25 【问题描述】:

在我的项目中,一些UITableViewCell 有一些复杂的子视图结构和手势动作,所以我决定使用一层“单元控制器”对象(NSObject 的子类)来管理单元和单元层手势,如以及在 xib 文件中绘制单元格。

现在,当我从以单元控制器为所有者的 nib 加载单元时(xib 已正确设置),我发现插座未连接。为什么?

或者,当加载 nib 并设置 outlets 时,是否会在所有者对象上调用任何方法?

笔尖是这样加载的:

cell = [[NSBundle mainBundle] loadNibNamed:@"HistoryCellActive"
                                     owner:self
                                   options:nil][0];

【问题讨论】:

您能告诉我们您是如何加载 nib 文件的吗? @ozgur -[NSBundle loadNibNamed:owner:options:] 作为编辑。 【参考方案1】:

nib 加载基础架构向从 nib 存档重新创建的每个对象发送 awakeFromNib 消息。当一个对象收到一个 awakeFromNib 消息时,保证它的所有出口和动作连接都已经建立。

您可以尝试覆盖 HistoryCellActive 实现文件中的 awakeFromNib 方法并在此处设置断点。如果单元格 xib 文件正确,则调试器将在此断点处停止,您可以检查所有单元格的出口。如果不是,则必须检查 xib 是否有错误。

别忘了调用 [super awakeFromNib];在 awakeFromNib 实现开始时。

【讨论】:

没有多大帮助:HistoryCellActive 只是一个 UITableViewCell,所以我没有可以断点的地方。 如果它只是一个 UITableViewCell 你在说什么网点? 如果你想将自定义的 outlet 附加到 UITableViewCell 你应该创建一个 UITableViewCell 的子类并在这里定义 outlet。 我有一个拥有 xib 的单元控制器对象,而缺少的出口指向它。 如果您有“单元控制器对象”的类实现,您可以在此处覆盖 awakeFromNib。

以上是关于笔尖已装好,插座不见了的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL Developer 连接oracle 看不见数据库

各位大神:今天早上我装了个allegro16.3 装好了 但是一缩小零件丝印看不见 线也成一段一段的 是啥原因

excel2013的功能区不见了如何将隐藏的功能显示出来已解决

我安装的centos6.4版本,为啥在桌面上点击鼠标左键或右键,指针就变成了一个很小的点,几乎看不见?

PADS Layout 菜单栏上的"File"图标不见了 怎么恢复啊

时间稍纵即逝,好久不见~ [QQ群均已解散,暂只保留UE4群]