有人告诉我 awakeFromNib 应该只调用一次,所以我很惊讶地看到它为我的 WindowController 调用了两次。我使用 IB 在 MainMenu.xib 中创建我的 WindowController,但是为了告诉它要加载哪个窗口 xib 文件,我向它添加了一个 init 方法。
当我调试代码时,我发现这个调用堆栈触发了对 awakeFromNib 的第一次调用。所以基本上 [MyWindowController init] 触发了第一次调用。然后我猜第二个调用是因为加载 MainMenu.xib。那是对的吗 ?
有人可以对此有所了解吗?
顺便说一句,我在堆栈溢出上阅读了一些与我类似的其他问题,一些答案说这可能是因为文件 owen 问题。所以我特别把window xib文件的文件所有者改成了NSApplication。但是 awakeFromNib 仍然为 MyWindowController 调用了两次。