1

我希望我的应用程序支持现有文件类型的“打开方式”功能。

但是,这种文件类型没有 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>

但是,这似乎忽略了“扩展名”并为任何数据文件启用“打开方式”。

有什么办法可以防止这种情况发生吗?

4

1 回答 1

1

您可以在 Info.plist 中定义 UTI。如果这是为了扩展您自己的创作,请制作一个并将其放在“Exported Type UTIs”下。如果它用于已知类型的文件但 UTI 不为人所知,则可以将其放在 Info.plist 的“导入类型 UTI”部分下。无论哪种情况,您现在都可以在文档类型部分引用此 UTI。

于 2012-10-15T22:21:44.670 回答