【发布时间】:2015-06-16 22:23:38
【问题描述】:
我最近才知道 xib 的文件所有者不必是 NSWindowController 或 NSViewController(不知道我为什么这么认为)。
所以我明白这是事情发生的顺序:
实例化了一个对象(使用 MVC,控制器)。出口 属性没有连接,并且指向nil
必须用
-initWithNibNamed初始化笔尖(并且将 在访问view或window时加载)或w/-loadNibNamed(将初始化然后一起加载笔尖)笔尖初始化后,所有插座都已连接
-awakeFromNib在控制器上被调用
但现在对我来说没有意义的是,为什么我在 -loadNibNamed 调用中指定笔尖的所有者甚至很重要。
BOOL effectsXibLoaded = [[NSBundle mainBundle] loadNibNamed:@"Effects"
owner:self.effectsController
topLevelObjects:nil];
我这么说是因为我想是因为我们在nib 中指定了文件所有者是谁——因此当nib 被初始化时,它应该知道将它的出口连接到谁对吗?
或者在-loadNibNamed 中指定owner 只是将另一个对象添加到owners 列表的一种方式(如果这是一件事?)。我想只有一位所有者收到来自一位nib 的-awakeFromNib 电话,但我不确定。
也就是说,如果我指定owner,当nib唤醒时,它会通知说owner,以及xib中指定的owner?
另外我对我对事情执行顺序的理解没有信心,所以如果我需要更正,请不要犹豫
【问题讨论】:
标签: objective-c cocoa nib