2012-01-02 40 views
0

我有一個應用程序,我使用NSOpenPanel:NSOpenPanel顯示爲表只有一次

openDlg = [NSOpenPanel openPanel]; 
[openDlg setCanChooseDirectories:YES]; 
[openDlg beginSheetModalForWindow:MainWindow completionHandler:nil]; 

if ([openDlg runModal] == NSOKButton){ 
    NSLog(@"accept"); 
} else { 
    NSLog(@"cancel"); 
} 

的事情是,取消後,如果我再次顯示彈出它顯示爲一個窗口,而不是表(它在第一次通話中)。我認爲這是由於一些發佈的事情,但我的項目使用ARC,所以我不知道。我做錯了什麼?謝謝!

+0

你能後的年底完成你再次顯示面板的代碼,它不起作用?這個問題與ARC或內存管理有什麼關係,這是值得懷疑的。 – 2012-01-02 18:58:29

回答

0

看起來像你接受來自NSOpenPanel所提供的價值,但你是那麼不刪除面板本身,這可以通過加入以下代碼的

[openDlg close]; 
[NSApp endSheet:openDlg];