gpt4 book ai didi

objective-c - 显示 NSWindow

转载 作者:行者123 更新时间:2023-12-03 17:28:24 25 4
gpt4 key购买 nike

点击菜单项会显示一个 NSWindow,但只是第一次,为什么会这样,如何解决?

-(IBAction)menuClick:(id)sender
{
if (!formsView) {
formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
}

[formsView showWindow:self];
}

最佳答案

这与我使用的代码相同并且有效。问题一定出在其他地方。

问题不在于代码,而在于 Interface Builder 中的设置。 (我仍在使用 Xcode 3.2,所以在我的世界中 Interface builder 是一个单独的应用程序。)确保 xib 中的 File's Owner 类设置为 NSWindowController ,并且它的window socket 连接到窗口。

如果您不这样做,并且为窗口设置了启动时可见,您将得到与您描述的完全相同的症状。这是因为 initWithWindowNibName 加载 NIB 文件,并且由于 Visible At Launch 标志而显示窗口。但是如果你查看 NSWindowController 实例的 window 属性,你会发现它仍然是 nil。这就是当您再次调用 showWindow 时窗口不会重新显示的原因。 IB 中的连接将窗口与 Controller 关联起来。

Here's a project that has IB set up correctly.

以下是IB中的相关设置:

The relevant settings for IB

关于objective-c - 显示 NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6962531/

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