0

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

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

窗口正确显示,但是 TimelogWindowController 的 windowDidLoad 和 windowWillLoad 方法从未被调用。我已经设置了代表,还有什么问题?

4

1 回答 1

4

您真的是要成为 TimelogWindow.nib 的所有者(self从您的代码中不清楚究竟是什么)吗?self它通常是 nib 文件的所有者的窗口控制器。尝试更换

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

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

以便新创建的TimelogWindowController实例成为该 nib 文件的所有者,确保 TimelogWindow.nib 中的 File's Owner 设置为 type TimelogWindowController,并且该 File's Ownerwindow出口连接到窗口对象。

于 2011-02-01T16:51:03.640 回答