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 对象?