BrowserWindowController

BrowserWindowController

我有一个扩展了NSWindowController的类BrowserWindowController。我的应用程序委托有一个BrowserWindowController,它在应用程序启动时分配,初始化并指向实例变量。然后,它显示其窗口。目标是显示来自NIB的窗口。

但是,我使用的代码最终分配了两个BrowserWindowControllers并初始化了两者。我已经使用调试器来跟踪何时调用BWC的initWithWindow方法:

browser = [[BrowserWindowController alloc] initWithWindowNibName:@"BrowserWindow"]; //this calls initWithWindow as expected
[browser showWindow:nil]; //this allocates ANOTHER BWC and calls initWithWindow on it!


showWindow正在制作一个新的BrowserWindowController。我不知道它指向的新对象是什么。对我来说这是一个很大的问题。有什么方法可以解决此问题或使用其他方法显示窗口?还是至少可以出于某种原因获得showWindow创建的控制器的指针?

最佳答案

您是否检查过这种情况并尝试?

if !(browser)
{
browser = [[BrowserWindowController alloc] initWithWindowNibName:@"BrowserWindow"]; //this calls initWithWindow as expected
[browser showWindow:nil];
}

10-08 16:24