NSOpenPanel-Object C组件-打开对话框-选择文件/文件夹获得路径

时间:2021-09-15 12:21:57

 

1. NSOpenPanel的beginWithCompletionHandler:^(NSInteger result),打开文件对话框时,对话框出现在屏幕的*。

    
    NSMutableArray * fileURLArray = [[NSMutableArray alloc] init];
    
    NSOpenPanel * mySelectPanel = [NSOpenPanel openPanel];
    [mySelectPanel setCanChooseDirectories:YES];
    [mySelectPanel setCanChooseFiles:YES];
    [mySelectPanel setCanCreateDirectories:YES];
    [mySelectPanel setAllowsMultipleSelection:YES];
    [mySelectPanel setResolvesAliases:YES];
    
    //界面出现在电脑屏幕*
    [mySelectPanel beginWithCompletionHandler:^(NSInteger result) {
        if (result == NSModalResponseOK) {
            NSLog(@"OK");
            for (NSURL * url in [mySelectPanel URLs]){
                NSString * path = [NSString stringWithString:[url path]];
                //path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
                //path = [path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
                [fileURLArray addObject:path];
                NSLog(@"%@", path);
            }
            for (NSString * a in fileURLArray) {
                NSLog(@"%@", a);
            }
            
            NSLog(@"%@", fileURLArray);
            
        } else if (result == NSModalResponseCancel) {
            NSLog(@"Cancel");
        } else if (result == NSModalResponseStop) {
            NSLog(@"Stop");
        }
    }];

NSOpenPanel-Object C组件-打开对话框-选择文件/文件夹获得路径

 

2. NSOpenPanel的beginSheetModalForWindow:self.view.window completionHandler:^(NSInteger result),打开文件对话框时,对话框依附在操作界面下。

    
    NSMutableArray * fileURLArray = [[NSMutableArray alloc] init];
    
    NSOpenPanel * mySelectPanel = [NSOpenPanel openPanel];
    [mySelectPanel setCanChooseDirectories:YES];
    [mySelectPanel setCanChooseFiles:YES];
    [mySelectPanel setCanCreateDirectories:YES];
    [mySelectPanel setAllowsMultipleSelection:YES];
    [mySelectPanel setResolvesAliases:YES];
    
    //对话框依附在操作界面下
    [mySelectPanel beginSheetModalForWindow:self.view.window completionHandler:^(NSInteger result) {
        if (result == NSModalResponseOK) {
            NSLog(@"OK");
            for (NSURL * url in [mySelectPanel URLs]){
                NSString * path = [NSString stringWithString:[url path]];
                //path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
                //path = [path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
                [fileURLArray addObject:path];
                NSLog(@"%@", path);
            }
            for (NSString * a in fileURLArray) {
                NSLog(@"%@", a);
            }
            
            NSLog(@"%@", fileURLArray);
            
        } else if (result == NSModalResponseCancel) {
            NSLog(@"Cancel");
        } else if (result == NSModalResponseStop) {
            NSLog(@"Stop");
        }
    }];

NSOpenPanel-Object C组件-打开对话框-选择文件/文件夹获得路径