如何创建标识为自定义UTI类型的文件?

时间:2010-06-04 20:35:58

标签: objective-c macos uti

现在我有一个生成XML文件的应用程序。我们称之为someFile.myapp 当我的应用程序保存文件并使用mdls查看它时,它的kMDItemContentType为“dyn.234kdfsjk23jk24234kjfd” 如何将文件的UTI类型设置为com.mycompany.myapp等自定义值?

3 个答案:

答案 0 :(得分:3)

UTI通过应用程序的Info.plist文件中的声明链接到扩展。添加如下部分:

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.xml</string>
        </array>
        <key>UTTypeDescription</key>
        <string>My Special File Type</string>
        <key>UTTypeIdentifier</key>
        <string>org.myapp.someutiidentifier</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>myapp</string>
            </array>
        </dict>
    </dict>
</array>

答案 1 :(得分:1)

为您的文件设想一个唯一的扩展,并使用导出的UTI声明将扩展名与您的UTI相关联。

答案 2 :(得分:1)

启动服务将文件映射到UTI,理论上可以使用有关该文件的许多不同类型的信息来识别其类型,但实际上将忽略文件扩展名以外的所有内容。因此,如果您希望文件的类型可识别,则需要提供一个唯一的扩展名并将其映射到应用程序的Info.plist中的相关类型。如果您的文件需要共享已被其他应用声明的扩展程序,那么您就是SOL。

据我所知 - 我说这是Mac的长期粉丝 - 这是Mac OS X的一个方面,它很容易说:“欢迎来到1985年!”