2013-01-02 45 views
1

我试图打开一个叫做EasyWindow.xib的nib文件,当它在我的MainMenu.xib中按下按钮时。我有按钮连接到这个IBAction方法,但是当我点击按钮它不会打开。当我将这个init部分中的“窗口”更改为“loadWindow”时,它工作得很好,但是Mac开发人员库会说“你永远不应该直接调用这个方法。”我如何使窗口方法工作?- (NSWindow *)窗口无法显示窗口,而loadWindow的

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

回答

0

- (NSWindow *)window只给你,NSWindowController管理的实际窗口对象的引用。它实际上并没有对这个窗口做任何事情。它比其他任何东西都更吸引人。

同时,-loadWindow是一个方法,当你的程序实际上从nib文件加载窗口时调用,并且与打开它,关闭它并显示它几乎没有关系。这就是为什么你不应该这样称呼它。我猜它是有效的,因为副作用是显示自身的窗口。

你在找什么可能是NSWindowController- (IBAction)showWindow:(id)sender [reference]它应该做的正是你想要的东西:

显示与接收器相关的窗口

+0

这是我做了什么,在'添加 - (IBAction为)的ShowWindow:(ID)sender'在。但是当我点击连接到' - (IBAction)loadRWindow:(id)sender'的按钮时,窗口仍然没有打开。还有什么想法? ' - (IBAction)loadRWindow:(id)sender NSWindowController * reviewController = [[NSWindowController alloc] initWithWindowNibName:@“reviewWindow”]; [reviewController showWindow:sender]; }' – benj9a4