cocoa - 通过 UTI 注册文件类型时出现问题

标签 cocoa xcode plist

我正在使用AquaticPrime用于在我的应用程序中生成许可证,正如开发人员指南建议的那样,我正在尝试注册自定义文件扩展名,以便用户只需单击许可证,我的应用程序将打开它,然后可以验证许可证。

为此,我已将导出的 UTI 声明添加到我的 Info.plist 中,如下所示:

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeDescription</key>
        <string>MyApp License File</string>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.xml</string>
        </array>
        <key>UTTypeIdentifier</key>
        <string>com.mycompany.myapplicense</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>myapplicense</string>
            </array>
        </dict>
    </dict>
</array>

但是,当我双击具有该扩展名的文件时,它不会在 MyApp 中打开,并且 MyApp 也不会显示为打开该文件类型的推荐应用程序之一。此外,在查看文件的“信息”面板时,不会显示上面指定的文件类型描述。

有人能看出我的 UTI 声明有什么问题吗?还是我还遗漏了其他内容?

谢谢

最佳答案

您还需要一个 CFBundleDocumentTypes 声明。

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFile</key>
        <string>MyAppLicenseIcon</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>NSDocumentClass</key>
        <string>MyAppLicenseHandler</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.mycompany.myapplicense</string>
        </array>
    </dict>
</array>

关于cocoa - 通过 UTI 注册文件类型时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3354680/

相关文章:

macos - 使用 Mac 命令行工具将一张图像插入另一张图像

ios - XCode 为 iPad 构建应用程序但不允许调试

macos - QSettings mac 和 plist 文件

iphone - XML PList 到 JSON 转换器并在客户端处理 JSON 响应

ios - 无法将数组名称传递到 Swift 3 中的 TableView

macos - NSWindow 的 orderOut/Back/Front 的 sender 参数的目的是什么?

objective-c - 使用 NSFileHandle 创建 UTF8 文本文件时出现问题

ios - iPad 应用程序中的禁用功能

ios - 如何将一张图片放在另一张图片前面?

objective-c - NSTextView - 绘制无法编辑的自定义字形