我希望我的应用支持现有文件类型的“Open In ..”功能。
但是,此文件类型没有UTI。
我在终端中为它运行 mdls ,结果如下:
kMDItemContentType = "dyn.ah62d4rv4ge80c25t"
kMDItemContentTypeTree = (
"public.data",
"public.item"
)
鉴于这些信息,我加入了我的plist:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>extension</string>
</array>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSItemContentTypes</key>
<array>
<string>public.data</string>
<string>public.item</string>
</array>
</dict>
</array>
然而,这似乎忽略了“扩展”并为任何数据文件启用“Open In ..”。
有没有办法阻止这种情况?
答案 0 :(得分:1)
您可以在Info.plist中定义UTI。如果这是您自己创建的扩展并将其置于“导出的类型UTI”下,请进行一次。如果它是针对已知类型的文件但是UTI不为人所知,则可以将其放在Info.plist的“导入类型UTI”部分下。在任何一种情况下,您现在都可以在“文档类型”部分中引用此UTI。