awakeFromNib()和windowDidLoad()

时间:2013-04-03 06:59:57

标签: objective-c macos cocoa

任何人都能解释awakeFromNib(),windowDidLoad(),init()的作用吗? 我正在使用一个继承自NSWindowController的类,我发现优先级为 -init(), - awakeFromNib(), - windowDidLoad()。 我想知道这些方法的确切表现。

1 个答案:

答案 0 :(得分:2)

init 是第一个被调用的方法。这初始化了自我和所有的伊娃,属性等。

awakeFromNib之后调用

init 。加载nib时,nib加载器会分配并初始化所有对象,然后连接所有出口和操作。由于发生这种情况的顺序,您无法访问初始化程序中的插座。你可以尝试,但他们都将是零。 在连接所有出口和操作之后,nib加载器将awakeFromNib发送到nib中的每个对象。您可以在此处访问插座以设置默认值或在代码中进行配置。

windowDidLoad 是一个委托方法,在窗口完全加载时调用。加载接收器所拥有的窗口后发送。默认实现不执行任何操作。