2012-03-01 10 views
0

すべてのタイプを開くことができるドキュメントベースのMacアプリケーションを作成しています。私のアプリケーションは、Dockタイルの任意のタイプのファイルを正常に受信しましたが、[ファイル]メニューから[開く]を選択すると、すべてのファイルがグレー表示されます。ドキュメントベースのアプリケーションの[開く]パネルに任意のタイプを入力可能

テンプレートに付属する標準の[開く]アイテムです。私はそれの後ろに何か特別なものを置いていない。

は、ここに私の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タイルにファイルをドロップしない限り、いつでも呼び出されません。

答えて

0

NSDocumentControllerサブクラスでは、runModalOpenPanel:forTypes:をオーバーライドし、types配列の場合はsuperでnilを呼び出します。これにより、NSOpenPanelのすべてのファイル名が有効になります。

関連する問題