如何在xcode可可项目中创建一个打开的文件对话框?

时间:2011-08-03 09:18:07

标签: objective-c xcode cocoa openfiledialog

我正在寻找与Windows相同的GetOpenFileName函数。

1 个答案:

答案 0 :(得分:4)

Open File UI的标准Cocoa类是NSOpenPanel

示例代码:

//this gives you a copy of an open file dialogue
NSOpenPanel* openPanel = [NSOpenPanel openPanel];

//set the title of the dialogue window
openPanel.title = @"Choose a .PED texture file";

//shoud the user be able to resize the window?
openPanel.showsResizeIndicator = YES;

//should the user see hidden files (for user apps - usually no)
openPanel.showsHiddenFiles = NO;

//can the user select a directory?
openPanel.canChooseDirectories = NO;

//can the user create directories while using the dialogue?
openPanel.canCreateDirectories = YES;

//should the user be able to select multiple files?
openPanel.allowsMultipleSelection = NO;

//an array of file extensions to filter the file list
openPanel.allowedFileTypes = @[@"ped"];

//this launches the dialogue
[openPanel beginSheetModalForWindow:appDelegate.controlsWindow
                completionHandler:^(NSInteger result) {

                    //if the result is NSOKButton
                    //the user selected a file
                    if (result==NSOKButton) {

                        //get the selected file URLs
                        NSURL *selection = openPanel.URLs[0];

                        //finally store the selected file path as a string
                        NSString* path = [[selection path] stringByResolvingSymlinksInPath];

                        //here add yuor own code to open the file

                    }

                }];