gpt4 book ai didi

xcode - 何时使用 awakeFromNib 、 initWithWindow 、 windowDidLoad 方法?

转载 作者:行者123 更新时间:2023-12-03 16:12:41 24 4
gpt4 key购买 nike

当我们必须使用这些方法时,您能解释一下吗?以及在什么样的情况下我们应该使用哪种方法?现在我测试哪个有效并使用它(是的,我是初学者)..谢谢。我正在为 MAC 进行开发。

最佳答案

首先,你永远不应该自己调用 awakeFromNib 和 windowDidLoad 。您可以在自定义类中实现它们,然后 Cocoa 将在适当的时候调用它们。

awakeFromNib 适用于从 nib 存档加载的所有对象,而不仅仅是窗口和窗口 Controller 。这是一个进行设置的好地方 - 它很安全(可以保证该对象已完全加载,已从其 init 调用返回,并且已设置其所有导出),但仍然很早。

windowDidLoad(和 windowWillLoad)适用于所有窗口,无论是从 nib 存档加载还是动态创建。但它不是在窗口上调用的,而是在窗口的 Controller 上调用的。 (通常你不是创建自己的 NSWindow 子类,而是创建自己的 NSWindowController 子类。)如果你有依赖于正在加载的窗口的设置代码,你应该把它放在这里(但实际上在简单的情况下并不那么重要)情况下,因为一旦您尝试访问 window 属性,它就会被创建)。

initWithWindow:是您自己称呼的东西,但刚开始的 Cocoa 程序员可能永远不想这样做。

您可能应该阅读 Xcode 附带的一些指南。如果您想要基于文档的应用程序,请从“Mac 版基于文档的应用程序编程指南”开始。如果您想要一个单窗口实用程序应用程序,您仍然需要了解 MVC 等,因此您实际上可能想首先构建一个基于文档的应用程序来了解您的方法。

此外,如果您想了解事件的顺序,请覆盖您可以覆盖的每条消息,并添加类似 NSLog(@"%s", __FUNCTION__);​​ 的内容。你的系统日志将揭示一切。

关于xcode - 何时使用 awakeFromNib 、 initWithWindow 、 windowDidLoad 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10886913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com