windowDidLoad windowWillLoad on NSWindowController从未调用过

时间:2011-02-01 10:52:30

标签: objective-c cocoa nswindowcontroller

我正在使用以下代码创建一个窗口:

if(hudWindow == nil)
    hudWindow = [[TimelogWindowController alloc] initWithWindowNibName:@"TimelogWindow" owner: self];
[hudWindow showWindow: self];

窗口正确显示,但永远不会调用TimelogWindowController的windowDidLoad和windowWillLoad方法。我设置了te委托,还有什么可能是问题?

1 个答案:

答案 0 :(得分:4)

你真的是指self(你的代码中不清楚究竟是self)成为TimelogWindow.nib的所有者吗?窗口控制器通常是nib文件的所有者。尝试替换

hudWindow = [[TimelogWindowController alloc]
    initWithWindowNibName:@"TimelogWindow" owner: self];

hudWindow = [[TimelogWindowController alloc]
    initWithWindowNibName:@"TimelogWindow"];

以便新创建的TimelogWindowController实例成为该nib文件的所有者,确保TimelogWindow.nib中的File的所有者设置为TimelogWindowController类型,并且该文件的所有者window插座连接到窗口对象。