禁止NSOpenPanel中的特定文件类型

时间:2013-04-17 05:57:32

标签: objective-c macos cocoa nsopenpanel

我有NSOpenPanel。我想这样做,以便PDF文件不应该是可选择的。

正如我们可以设置“允许的文件类型”:

NSOpenPanel *panel;
NSArray* fileTypes = [[NSArray alloc] initWithObjects:@"pdf", @"PDF", nil];
panel = [NSOpenPanel openPanel];
[panel setFloatingPanel:YES];
[panel setCanChooseDirectories:NO];
[panel setCanChooseFiles:YES];
[panel setAllowsMultipleSelection:YES];
[panel setAllowedFileTypes:fileTypes];
int i = [panel runModal];
if(i == NSOKButton){
    return [panel URLs];
}

我的要求是禁止使用特定的文件类型。

1 个答案:

答案 0 :(得分:1)

您可以使用NSOpenSavePanelDelegate方法panel:shouldEnableURL:进行此操作。

专家组将向其代表询问其正在显示的每个网址;检查文件的扩展名或UTI,并从该方法返回NO以获取PDF格式。

或者,只需提供 支持的文件类型的详尽列表,并将其用于allowedFileTypes数组。