我显示模态子窗口:
NSWindowController* controller = [[NSWindowController alloc] initWithWindowNibName: @"MyWindow"];
[NSApp runModalForWindow: [controller window]];
我在窗口子类中重写initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag
以设置链接到nib文件的子视图。但是这些孩子现在还没有初始化(是零)。
在哪里放置初始化代码?
答案 0 :(得分:1)
nib / xib加载器创建对象(包含来自init
系列的一些构造函数)并以未定义的顺序设置它们的出口。在它们全部存在并且所有出口都已设置之后,它会将awakeFromNib
发送到来自nib / xib文件(接受此消息)的所有对象,因此这是执行大部分初始化的正确位置。