NSOpenPanel отображается как лист только один раз - PullRequest
0 голосов
/ 02 января 2012

У меня есть приложение, в котором я использую NSOpenPanel:

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

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

Дело в том, что после отмены, если я снова показываю всплывающее окно, оно появляется в виде окна, а не листа (что происходит при первом вызове). Я думаю, что это связано с каким-то релизом, но мой проект использует ARC, поэтому я не знаю. Что я делаю не так? Спасибо!

1 Ответ

0 голосов
/ 03 октября 2012

Похоже, что вы принимаете значение, предоставленное NSOpenPanel, но затем не удаляете саму панель, это можно сделать, добавив в конец кода следующее

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