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: