NSOpenPanel is surprisingly easy to use: create the panel, call the openPanel method, and handle the returned URL object in a block.
In this example we invoke the panel from a button in the main window, then display the returned URL in a textLabel:
- (IBAction)loadFile:(id)sender {
// create an open documet panel
NSOpenPanel *panel = [NSOpenPanel openPanel];
// display the panel
[panel beginWithCompletionHandler:^(NSInteger result) {
if (result == NSFileHandlingPanelOKButton) {
// grab a reference to what has been selected
NSURL *theDocument = [[panel URLs]objectAtIndex:0];
// write our file name to a label
NSString *theString = [NSString stringWithFormat:@"%@", theDocument];
self.textLabel.stringValue = theString;
}
}];
}
Further Reading
Apple’s NSOpenPanel Class reference: