3

我需要在 Finder 应用程序中为自定义文件类型添加上下文菜单项。所以我使用 Apple Automator 创建了一个服务。当我在 NSSendFileTypes 上下文菜单项中为 public.data 指定时,通常会出现在所有类型的文件上,但是当我使用我的应用程序 info.plist 中指定的 UTI 时,它不适用于定义的自定义文件类型。任何人都可以帮助提示是否可以对 Finder 上下文菜单项服务使用自定义 UTI 过滤,如果可以,我做错了什么或者可能有任何“诀窍”?

这是我的服务工作流文件的 info.plist 文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSServices</key>
    <array>
        <dict>
            <key>NSMenuItem</key>
            <dict>
                <key>default</key>
                <string>MyService</string>
            </dict>
            <key>NSMessage</key>
            <string>runWorkflowAsService</string>
            <key>NSRequiredContext</key>
            <dict>
                <key>NSApplicationIdentifier</key>
                <string>com.apple.finder</string>
            </dict>
            <key>NSSendFileTypes</key>
            <array>
                <string>com.myapp.anytype</string>
            </array>
        </dict>
    </array>
</dict>
</plist>

这是我的应用程序 info.plist 中的 UTI 声明代码。

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.archive</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Any type file format</string>
        <key>UTTypeIdentifier</key>
        <string>com.myapp.anytype</string>
        <key>UTTypeReferenceURL</key>
        <string>http://myapp.com</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>anytype</string>
            </array>
        </dict>
    </dict>
</array>

我可以在该类型文件的建议应用程序列表中看到我的应用程序,所以我认为声明是正确的。

4

1 回答 1

1

想分享我做错了什么。我从应用程序导出的文件格式位于系统 UTI 列表中,因此无法导出该格式的 UTI 定义。我只是使用了系统中声明的那个。感谢选民!

于 2011-06-22T07:27:33.207 回答