我正在使用以下代码创建一个窗口:
if(hudWindow == nil)
hudWindow = [[TimelogWindowController alloc] initWithWindowNibName:@"TimelogWindow" owner: self];
[hudWindow showWindow: self];
窗口正确显示,但永远不会调用TimelogWindowController的windowDidLoad和windowWillLoad方法。我设置了te委托,还有什么可能是问题?
答案 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
插座连接到窗口对象。