2015-08-14 78 views
0

有很多類似的問題,但他們似乎是太舊了 - 什麼也沒有發生,beginSheet:...方法未申報等我需要的東西像下面的(但在OS X窗口):在OS X> = 10.10(插件模板)中顯示窗口?

//just created class with option "also create xib" 
MyViewController *vc = [[MyViewController alloc] initWithNibName:@"..." bundle:nil]; 
[self.navigationController pushViewController:controller animated:NO]; 

所以對於例如,我通過類似的方法創建了NSWindowController xib,並運行​​,但它落在beginSheet:...方法中的任何一個上。但是這個例子甚至在蘋果文檔中有描述。

我在做什麼錯了?是否因爲我使用通過Alcatraz下載的插件模板,它從一開始就沒有任何窗口,但應該在菜單項單擊時顯示它?

回答

0

您錯誤地使用了NSViewController的子類,即「MyViewController」。你需要的是NSWindowController的一個子類。作爲工作表,您只能使用NSWindow(而不是NSView)。如果您試圖以模態方式運行窗口(這意味着有依賴窗口),請確保顯示現有窗口。

在沒有窗口的情況下,您可以使用XIB創建NSWindowController的新子類。然後實例是這樣的:

@interface SomeClass { 
     CustomWindowController *customWindowController; 
    } 

    - (IBAction)createNewWindow:(id)sender { 
     customWindowController = [[CustomWindowController alloc] initWithWindowNibName:@"NameOfXib"]; 
     [customWindowController showWindow:nil]; 
    } 

約牀單更多信息:Using Application-Modal Dialogs