2012-01-02 41 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];