Prompting the user for a file
Introduction#
NSOpenPanel provides an API for prompting the user for a file to open. This menu is the standard UI presented by the Open (⌘O) menu item.
Opening files
Opening any file
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
[openPanel beginWithCompletionHandler:^(NSInteger result) {
NSURL *url = openPanel.URL;
if (result == NSFileHandlingPanelCancelButton || !url) {
return;
}
// do something with a URL
}];
Allowing opening multiple files
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
openPanel.allowsMultipleSelection = YES;
[openPanel beginWithCompletionHandler:^(NSInteger result) {
NSArray <NSURL *>*urls = openPanel.URLs;
// do things
}];
Limiting to specific file types
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
openPanel.allowedFileTypes = @[@".png", @".jpg"];
[openPanel beginWithCompletionHandler:^(NSInteger result) {
NSURL *url = openPanel.URL;
if (result == NSFileHandlingPanelCancelButton || !url) {
return;
}
// do something with a picture
}];