我正在嘗試將自定義文件擴展名關聯到我正在處理的應用程序,以便在雙擊具有特定擴展名的文件時,我的應用程序將啓動。將自定義文件擴展名關聯到我的應用
.abc文件只是一個存檔文件(.zip重命名爲.abc)收集幾個.xml文件。當我用我的應用程序加載其中一個.abc文件時,歸檔文件被解壓縮,並且.xml文件被解析,因此我可以在代碼中爲某些變量設置一些值。
如果我理解正確,那麼有兩個部分。
- 讓OS X知道,擴展名爲.abc必須用我的應用程序
- 處理的文件在我的應用程序,一旦它推出
現在我在與第一部分的問題有關。我已經閱讀了一些處理這個問題的堆棧溢出帖子(如here或here),但我不明白他們是如何拿出關鍵字<LSItemContentTypes>
的字符串值的內容(我試過abc但它沒有' t工作)和密鑰<UTTypeIdentifier>
。
到目前爲止,這是我的代碼已經添加到我的Info.plist文件
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<array>
<string>myicon.icns</string>
</array>
<key>CFBundleTypeName</key>
<string>My Custom Project File</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>don't.know.what.to.put.here.abc</string>
</array>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string> <!--not sure about that value-->
</array>
<key>UTTypeDescription</key>
<string>My Custom Project File</string>
<key>UTTypeIdentifier</key>
<string>don't.know.what.to.put.here.abc</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>abc</string>
<key>public.mime-type</key>
<string>application/octet-stream</string> <!--not sure about that value-->
</dict>
</dict>
</array>
而且,是UTTypeConformsTo
public.data確定在我的情況?由於自定義文件擴展名錶示包含xml文件的存檔?
如果有人可以幫助我解決這個:)
感謝
隨時回答您自己的問題:D – robertklep
我認爲編輯它是要走的路! – nmud
很容易忽略在問題(IMHO)中發佈的答案。 – robertklep