gpt4 book ai didi

objective-c - (Cocoa Mac) NSWindowController showWindow 分配/初始化一个新的 NSWindowController?

转载 作者:行者123 更新时间:2023-12-03 17:40:05 27 4
gpt4 key购买 nike

我有一个扩展 NSWindowController 的 BrowserWindowController 类。我的应用程序委托(delegate)有一个 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 由于某种原因创建的 Controller 的指针吗?

最佳答案

你检查过这样的情况并尝试过吗?

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

关于objective-c - (Cocoa Mac) NSWindowController showWindow 分配/初始化一个新的 NSWindowController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com