Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Associating a file extension with my application

I know how to manually associate a specific file or generic extension with a particular OS X application. (Get Info > Open with > Other…)

I know how, in OS X, to drag-and-drop a file with an extension onto an 'unsupported' application. (Hold down command-option when dragging over the application)

As the author of an OS X application, how can I specify that my application knows how to open a particular file extension?

  • I want my users not to need to use command-option for drag-and-drop.
  • I want my users to see my application listed under "Recommended Applications" instead of "All Applications" when picking an app to open my extensions.
  • Ideally, I want my users to see files with my (unique, not-already-associated) extension magically show the correct icon and open with my application as soon as the .app is dragged into the Applications folder.

I have seen "MacOSX - File extension associate with application - Programatically", but I do not want to have to have users run an installer or shell script after installation.

like image 294
Phrogz Avatar asked Oct 02 '22 13:10

Phrogz


1 Answers

To declare its support for file types, your app must include the CFBundleDocumentTypes key in its Info.plist

Then implement

- application:openFile: (for single file drag-drop)
or
- application:openFiles: (multiple files drag-drop)

Have a look at Complete the Information Property List section in Document-Based App Programming Guide for Mac

like image 148
Parag Bafna Avatar answered Oct 20 '22 06:10

Parag Bafna