【问题标题】:Disallow particular file type in NSOpenPanel [duplicate]禁止 NSOpenPanel 中的特定文件类型 [重复]
【发布时间】:2013-04-17 05:57:32
【问题描述】:

我有一个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];
}

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

【问题讨论】:

    标签: objective-c macos cocoa nsopenpanel


    【解决方案1】:

    您可以为此使用NSOpenSavePanelDelegate 方法panel:shouldEnableURL:

    面板将向其代表询问其正在显示的每个 URL;检查文件的扩展名或 UTI,并从 PDF 的该方法返回 NO

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

    【讨论】:

    • shouldEnableURL 没有被调用我有 setDelegate,我还需要设置一些其他属性吗?
    • 不,您只需要在您用于委托的对象上实现该方法即可。
    猜你喜欢
    • 2020-12-28
    • 2011-11-13
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    相关资源
    最近更新 更多