我有一个基于文档的应用程序,它具有自定义文件格式、UTI 等设置:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>extension</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>Icon</string>
<key>CFBundleTypeName</key>
<string>Custom Document</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>NSDocumentClass</key>
<string>MyDocument</string>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>Custom Document</string>
<key>UTTypeIconFile</key>
<string>Icon</string>
<key>UTTypeIdentifier</key>
<string>com.mycompany.appname</string>
<key>UTTypeReferenceURL</key>
<string></string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>XXXX</string>
<key>public.filename-extension</key>
<array>
<string>extension</string>
</array>
</dict>
</dict>
</array>
<key>UTImportedTypeDeclarations</key>
<array/>
哪个(我假设,根据我所读的内容)是正确的方法。除了,当我在任何保存的文件上运行 mdls 时,UTI 被列为:
kMDItemContentType = "com.apple.appname.document"
这很令人困惑,因为我已经从 TextEdit、iSpend 和 Sketch 等示例应用程序列表中复制和粘贴条目,但均无济于事。
保存的文档具有正确的 UTI 尤其重要,因为它们需要一个自定义的 QuickLook 生成器,该生成器依赖于正确的 UTI。
任何帮助是极大的赞赏。先感谢您。