gpt4 book ai didi

cocoa - awakeFromNib 被我的 WindowController 调用了两次,对吗?

转载 作者:行者123 更新时间:2023-12-03 18:00:20 26 4
gpt4 key购买 nike

我被告知 awakeFromNib 应该只被调用一次,所以我很惊讶地看到它被我的 WindowController 调用了两次。我使用 IB 在 MainMenu.xib 中创建 WindowController,但为了告诉它要加载哪个窗口 xib 文件,我向其中添加了一个 init 方法。

当我调试代码时,我发现此调用堆栈触发了对 awakeFromNib 的第一次调用。所以基本上 [MyWindowController init] 触发了第一个调用。然后我猜第二个调用是因为加载 MainMenu.xib。这是正确的吗?

有人可以解释一下吗?

顺便说一句,我在堆栈溢出上读到了一些与我类似的其他问题,一些答案说这可能是因为文件欠问题。所以我特地将window xib文件的文件所有者更改为NSApplication。但是 MyWindowController 的 awakeFromNib 仍然被调用了两次。

enter image description here

最佳答案

从你的问题中我了解到你正在IB中实例化MyWindowController,然后在MyWindowControllers init中你正在使用initWithWindowNibName加载第二个 Nib :?如果是这样,您自然会收到两个 awakeFromNib 调用。一个是在加载 init 方法中指定的 NIB 时,另一个是在加载 MainMenu.xib 时。

关于cocoa - awakeFromNib 被我的 WindowController 调用了两次,对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7496166/

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