当我在MainMenu.xib中按下按钮时,我正在尝试打开一个名为EasyWindow.xib的nib文件。我有按钮连接到这个IBAction方法,但是当我点击按钮时它没有打开。当我将这个初始化部分中的“窗口”更改为“loadWindow”时,它工作得非常好,但Mac Developer Library说“你永远不应该直接调用这个方法”。如何使窗口方法有效?
- (IBAction)loadEasyWindow:(id)sender
{
[[[NSWindowController alloc] initWithWindowNibName:@"EasyWindow"] window];
}
答案 0 :(得分:0)
- (NSWindow *)window
仅为您提供NSWindowController
管理的实际窗口对象的引用。它实际上并没有对那个窗口做任何事情。它更像是一个吸气剂而不是其他任何东西。
同时,-loadWindow
是一个方法,当你的程序实际从nib文件加载窗口时,它被调用,与打开它,关闭它并显示它几乎没什么关系。这就是你不应该打电话的原因。我猜这是有效的,因为副作用是显示自己的窗口。
您正在寻找的可能是NSWindowController
- (IBAction)showWindow:(id)sender
。 [reference]它应该完全符合您的要求:
显示与接收器关联的窗口