1

我试图在我的 MainMenu.xib 中按下一个按钮时打开一个名为 EasyWindow.xib 的 nib 文件。我将按钮连接到此 IBAction 方法,但是当我单击该按钮时,它没有打开。当我将此初始化部分中的“窗口”更改为“loadWindow”时,它工作得非常好,但是 Mac 开发人员库说“你永远不应该直接调用这个方法”。如何使窗口方法起作用?

- (IBAction)loadEasyWindow:(id)sender
{
    [[[NSWindowController alloc] initWithWindowNibName:@"EasyWindow"] window];
}
4

1 回答 1

0

- (NSWindow *)window只为您提供对管理的实际窗口对象的引用NSWindowController。它实际上并没有对那个窗口做任何事情。它更像是一个吸气剂。

同时,-loadWindow当您的程序实际从 nib 文件加载窗口时调用的方法与打开、关闭和显示窗口几乎没有关系。这就是为什么你不应该调用它。我猜它会起作用,因为副作用是窗口显示自己。

您正在寻找的可能NSWindowController- (IBAction)showWindow:(id)sender. [参考]它应该完全符合您的要求:

显示与接收器关联的窗口

于 2013-01-05T01:40:29.703 回答