2013-01-02 43 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