NSWindow 的 IBOutlet 组件啥时候初始化?

Posted

技术标签:

【中文标题】NSWindow 的 IBOutlet 组件啥时候初始化?【英文标题】:When IBOutlet components of NSWindow are initialized?NSWindow 的 IBOutlet 组件什么时候初始化? 【发布时间】:2012-05-24 14:33:48 【问题描述】:

我显示模态子类窗口:

NSWindowController* controller = [[NSWindowController alloc] initWithWindowNibName: @"MyWindow"];
[NSApp runModalForWindow: [controller window]];

我在我的窗口子类中覆盖initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag 以设置链接到 nib 文件的子视图。但是这些孩子此时没有初始化(为零)。

在哪里放置我的初始化代码?

【问题讨论】:

【参考方案1】:

nib/xib 加载器创建对象(使用来自init 系列的一些构造函数)并以未定义的顺序设置它们的出口。在它们都存在并且所有的 outlet 都设置好之后,它会将 awakeFromNib 从 nib/xib 文件(接受此消息)中发送给所有对象,因此这是执行大部分初始化的正确位置。

【讨论】:

以上是关于NSWindow 的 IBOutlet 组件啥时候初始化?的主要内容,如果未能解决你的问题,请参考以下文章

我们啥时候在它的 AppDelegate 中创建 IBOutlet ViewController 对象?

Cocoa - 将 IBOutlet 链接到单独的 Nib

React 啥时候重新渲染子组件?

Spring 啥时候使用服务或组件? [复制]

MVC 6 视图组件与部分视图:有啥区别?啥时候应该使用每个? [关闭]

我们啥时候应该为组件实现带有 IContainer 参数的构造函数?