0

NSOpenPanel を使用するアプリがあります。

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

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

問題は、キャンセルした後、ポップアップを再度表示すると、シートではなくウィンドウとして表示されることです (これは最初の呼び出しで行われます)。これは何らかのリリースによるものだと思いますが、私のプロジェクトでは ARC を使用しているため、わかりません。私が間違っていることは何ですか?ありがとう!

4

1 に答える 1

0

NSOpenPanel から提供された値を受け入れているように見えますが、パネル自体を削除していません。これは、コードの最後に次を追加することで実行できます

[openDlg close];
[NSApp endSheet:openDlg];
于 2012-10-03T13:09:55.190 に答える