どんなタイプでも開くことができるドキュメントベースの Mac アプリケーションを書いています。私のアプリケーションは、Dock タイルにドロップされた任意のタイプのファイルを正常に受信しますが、[ファイル] メニューから [開く] を選択すると、すべてのファイルがグレー表示されます。
これは、テンプレートに付属する標準の Open アイテムです。後ろに特別なことはしていません。
これが私の Info.plist の関連部分です。
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<string></string>
<key>CFBundleTypeName</key>
<string>Any file</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>****</string>
</array>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSTypeIsPackage</key>
<false/>
<key>NSDocumentClass</key>
<string>MyDocument</string>
</dict>
</array>
カスタム ドキュメント コントローラがあります。これがその実装です。
- (Class) documentClassForType:(NSString *)documentTypeName {
return [MyDocument class];
}
- (NSString *) typeForContentsOfURL:(NSURL *)inAbsoluteURL error:(NSError **)outError {
return @"Any file";
}
Dock タイルにファイルをドロップしない限り、これらのメソッドは呼び出されません。