我有一个扩展 NSWindowController 的类 BrowserWindowController。我的应用程序委托有一个 BrowserWindowController,它在应用程序启动时分配、初始化和指向一个实例变量。然后,它显示它的窗口。目标是显示来自 NIB 的窗口。
但是,我使用的代码最终分配了两个 BrowserWindowController 并初始化了两者。当 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 出于某种原因创建的控制器的指针吗?