2015-07-02 18 views
0

我有一個應用程序處理兩種文件擴展名,說.abc.xyz。我想在Finder中爲這兩個單獨的擴展名顯示單獨的圖標。怎麼做?OSX:如何爲我的應用程序設置多個文件圖標?

此外,我只想要.abc文件類型打開雙擊。對於.xyz文件類型,我只想在查找器中顯示其圖標。

如果可能的話,Info.plist示例將非常有用。

回答

0

第一部分是相對容易的,雖然不是很明顯。對於第二個,它看起來取決於您是否希望能夠將.xyz文件拖放到應用程序圖標上。如果不是,你會將CFBundleTypeRole更改爲None,但如果你這樣做,看起來你需要設置LSHandlerRankNone而不是(仍然在CFBundleDocumentTypes陣列中)。

樣品的plist片段爲.abc文件,一些佔位值:

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeExtensions</key> 
     <array> 
      <string>abc</string> 
     </array> 
     <key>CFBundleTypeIconFile</key> 
     <string>your-icon</string> 
     <key>CFBundleTypeName</key> 
     <string>Your File Type Description</string> 
     <key>CFBundleTypeRole</key> 
     <string>Editor</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>your.uti.abc</string> 
     </array> 
    </dict> 
</array> 
<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeDescription</key> 
     <string>Your File Type Description</string> 
     <key>UTTypeIconFile</key> 
     <string>your-icon</string> 
     <key>UTTypeIdentifier</key> 
     <string>your.uti.abc</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <array> 
       <string>abc</string> 
      </array> 
     </dict> 
    </dict> 
</array> 

當然,加.xyz到,你只需要添加另一個<dict>到兩個陣列。

+0

如果你在'UTExportedTypeDeclarations'部分聲明瞭.xyz但是從'CFBundleDocumentTypes'中忽略了它會發生什麼?這會給你的圖標沒有處理雙擊或下降? – JWWalker

+0

我不確定,對不起。我的印象是'UTExportedTypeDeclarations'應該引用'CFBundleDocumentTypes'中定義的類型,但我可能會誤解它。爲什麼不試試呢? – celticminstrel

+0

可能也是相關的 - 有一個'UTImportedTypeDeclarations',就像'UTExportedTypeDeclarations'一樣工作,但是它的意思是你的應用沒有「擁有」的類型(例如PNG圖像)。 – celticminstrel

相關問題