で、この設定パネルで“デフォルト”になっているアプリケーションがありますよね?それに、ファイルの拡張子によっては、利用できるソフトの数が多かったり、少なかったりします。あれって、だれがいつ、どこで設定しているものなのでしょう?
答えは、そのアプリケーション自身なのです。
Mac OS X 上ではアプリケーション毎に内蔵されている PropertyList (plist) と呼ばれるテキストの記述によりファイル関連付けのしくみを実現しています。
アプリケーションの中身を調べてみよう!
最初にパッケージ形式になっているアプリケーションの中身を見てみましょう。アプリケーション上で、control + クリックするとメニューが開きますので、そこから“パッケージの内容を表示”を選んで下さい。
【TextEdit のパッケージの中身】
パッケージ形式のアプリケーションはだいたい上図のような構成になっています。Contents のなかに、Info.plist というファイルがあります。これが問題のPropertyListです。
PropertyListの構造
Info.plist の中身をTextEditで開くと、テキストの記述が見られます。Mac OS X はこの内容を参照して、TextEdit が利用可能なファイル、ファイル拡張子を認識します。では、具体的にどの部分がどのような意味を持つのでしょう?
<key>CFBundleDocumentTypes</key>
と書かれた部分以降をよく見て下さい。
<dict> <key>CFBundleTypeExtensions</key> <array> <string>rtf</string> <string>RTF</string> </array> <key>CFBundleTypeIconFile</key> <string>rtf.icns</string> <key>CFBundleTypeName</key> <string>NSRTFPboardType</string> <key>CFBundleTypeOSTypes</key> <array> <string>RTF </string> </array> <key>CFBundleTypeRole</key> <string>Editor</string> <key>LSIsAppleDefaultForType</key> <true/> </dict>先頭と最後で<dict> </dict> と書かれた範囲が設定内容です。