如何通过 NSOpenPanel 打开具有新文件夹功能的面板?

jin*_*jin 4 cocoa

默认情况下,我们使用 NSOpenPanel 类方法打开一个打开的面板: -beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo: 但是我发现有些软件可以打开带有新文件夹按钮的打开面板,包括 XCode ,如何获得?非常感谢!

gee*_*guy 5

由于NSOpenPanel继承自NSSavePanel,您可以使用 NSSavePanel 的setCanCreateDirectories方法,如下所示:

    // Show an 'Open' dialog box allowing save folder selection.
    NSOpenPanel *open = [NSOpenPanel openPanel];
    [open setCanChooseFiles:NO];
    [open setAllowsMultipleSelection:NO];
    [open setCanChooseDirectories:YES];
    [open setCanCreateDirectories:YES];
    [open setTitle:@"Open Panel Title"];
    [open setPrompt:@"Select Button Title"];
Run Code Online (Sandbox Code Playgroud)

早在 OS X 10.2.x 时代,有一个私有方法_setIncludeNewFolderButton, 可以做同样的事情,但它在 Panther 中被删除了。不要尝试使用它——你的应用程序会崩溃。