NSDocumentController has a default implementation of openDocument:
.
For non document-based applications, you have to provide a custom implementation (like you did).
The reason probably is, that for document based apps, the document controller can create an instance of NSDocument
with the contents of the URL returned by the open panel.
For other apps, it's less obvious what the app should do after the user selected a file. So you have to specify that behaviour via code.
If your app fits the document-based model, you could take a look at the Document-Based App Programming Guide. You get a lot of default behaviour for free when adopting the Cocoa document architecture.
Xcode creates all necessary classes when you check the "Create Document Based Application" checkbox in the "New Project" wizard.