Cocoa文件选择对话框允许文件类型

时间:2013-12-26 19:35:48

标签: macos cocoa osx-mavericks

我正在尝试设置文件选择对话框允许的文件类型,但对话框没有过滤允许的类型,它允许我上传任何文件类型,

但我只希望它上传HTML文件,我也希望在对话框中淡化非允许的文件。

在OSX 10.9下是否支持过滤文件类型的方法?我收到了弃用警告。

- (IBAction)openfile:(id)sender {
    int i;
    NSOpenPanel* openDlg = [NSOpenPanel openPanel];

    [openDlg setCanChooseFiles:YES];

    [openDlg setAllowedFileTypes:@[@"html", @"htm"]];

    if ( [openDlg runModalForDirectory:nil file:nil] == NSOKButton )
    {
        NSArray* files = [openDlg filenames];
        for( i = 0; i < [files count]; i++ )
        {
            NSString* fileName = [files objectAtIndex:i];
            NSLog(@"%@", fileName);
        }
    }
}

1 个答案:

答案 0 :(得分:2)

setAllowedFileTypes 已弃用并且是正确的方法

runModalForDirectory 已弃用,应替换为completionHandler

filenames 也已弃用。使用NSURL而不是路径(总是:))


现代化:

- (IBAction)openfile:(id)sender {
    NSOpenPanel* openDlg = [NSOpenPanel openPanel];

    [openDlg setCanChooseFiles:YES];

    [openDlg setAllowedFileTypes:@[@"html", @"htm"]];

    [openDlg beginWithCompletionHandler:^(NSInteger result) {
        if(result==NSFileHandlingPanelOKButton) {
            for (NSURL *url in openDlg.URLs) {
                NSLog(@"%@", url);
            }
        }
    }];
}