-1

谁能解释 awakeFromNib()、windowDidLoad()、init() 的作用?我正在使用从 NSWindowController 继承的类,我发现优先级为 -init()、-awakeFromNib()、-windowDidLoad()。我想知道这些方法究竟执行了什么。

4

1 回答 1

2

init是第一个被调用的方法。这会初始化 self 和所有 ivars、属性等。

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

windowDidLoad是一个委托方法,当窗口完全加载时调用。在接收者拥有的窗口被加载后发送。默认实现什么也不做。

于 2013-04-03T07:02:53.620 回答