2014-03-26 23 views
0

這可能是一些簡單的我失蹤後視圖沒有打開,但是這就是正在發生的事情:的Mac:NSWindowController,它的封閉

我想提出一個菜單項應用程序(應用程序代理= YES)

所以我有一個MainViewAppDelegate這種運行整個事情。當菜單項上的按鈕被點擊時它會得到檢測結果。

然後,我有一個上傳NSWindowController:

#import <Cocoa/Cocoa.h> 

@interface UploadView : NSWindowController 
- (IBAction)upload:(id)sender; 
@end 

.M:

-(id)init { 
    if (! (self = [super initWithWindowNibName:@"UploadView"])) { 
     // Initialization code here. 
     return nil; 
    } 

    return self; 
} 

在MainViewAppDelegate,當按下該按鈕我做的:

if (!uploadView) { 
    uploadView = [[UploadView alloc] init]; 
} 
[uploadView showWindow:self]; 

現在,這個作品只要我不點擊出xcode。一旦我這樣做了(比如我使用活動選項卡),那麼即使我回到xcode,它也不能工作。

有什麼想法?

+0

我的直覺告訴我它與'UploadView'的nib文件中的retain屬性有關。 – trumpetlicks

+0

檢查你的網點。當NIB首次被加載時沒有連接時,你會得到一個虛幻的連接到一個窗口,該窗口在第一次關閉後立即消失(因爲,你知道,這對20年前的某個人來說似乎是合理的)。 – CodaFi

+0

並且NSWindow的「Release on close」複選框曾經是(不太有用)默認值。 –

回答

1

我在UploadView代碼中看不到任何問題。但是,您可以嘗試將xib中的UploadView面板連接到File's Owner窗口插座並嘗試。我現在創建了一個類似的演示,並嘗試過,我沒有看到任何問題。

+0

雅,我有上傳視圖中的面板連接到UploadView xib中的文件所有者,仍然不工作。 – Jonovono

+0

我沒有看到窗口綁定到您提供的代碼中的面板。 –

+0

你的意思是像ctrl-點擊從「Panel-Window」拖動到上面的「文件所有者」,並創建一個新的引用對象,其中「窗口」彈出? – Jonovono

0

所有我不得不添加了:

[NSApp activateIgnoringOtherApps:YES]; 

試圖打開的窗口前。