使用NSWindowController加载NIB文件不会设置窗口或顶级对象

时间:2009-05-13 08:38:35

标签: cocoa interface-builder

我有一个使用NSWindowController initWindowNibName加载的NIB文件。 NIB文件包含一个NSWindow。它的文件所有者是类NSWindowController。我已将文件所有者的窗口连接到窗口。

当我加载NIB时,[windowController窗口]为nil,顶层对象数组也是如此。但是,我仍然可以调用[windowController showWindow:nil]并成功显示窗口​​。

这里的东西似乎不对。我已经确认了连接,文件的所有者也没问题。事实上,当我在调试器中查看windowController实例的_owner值时,我发现它指向了我自己的预期。

有关可能发生的事情的任何建议?

谢谢!

2 个答案:

答案 0 :(得分:7)

当你说[windowController window]为零时,你是如何确定的?在第一次调用-window之前,实际上并未加载NIB。因此,如果您正在查看调试器,则在调用_window之前,您会看到showWindow:为nil。之后,_window应该具有非零值。

答案 1 :(得分:5)

你是否已经将NSWindowController子类化了?

当我这样做时,我使用名为MyWindowController的NSWindowController并在子类的initWithWindowNibName:

中调用init

然后,将File的Owner设置为指向MyWindowController类。