Macos 将自定义文件扩展名与我的应用程序关联
我正在尝试将自定义文件扩展名(比如.abc)与我正在处理的应用程序相关联,这样当我双击具有特定扩展名的文件时,我的应用程序就会启动 .abc文件只是一个归档文件(.zip重命名为.abc),它收集了几个.xml文件。当我用我的应用程序加载其中一个.abc文件时,会提取归档文件并解析.xml文件,这样我就可以在代码中为某些变量设置一些值 如果我理解正确,这有两个部分Macos 将自定义文件扩展名与我的应用程序关联,macos,info.plist,uti,Macos,Info.plist,Uti,我正在尝试将自定义文件扩展名(比如.abc)与我正在处理的应用程序相关联,这样当我双击具有特定扩展名的文件时,我的应用程序就会启动 .abc文件只是一个归档文件(.zip重命名为.abc),它收集了几个.xml文件。当我用我的应用程序加载其中一个.abc文件时,会提取归档文件并解析.xml文件,这样我就可以在代码中为某些变量设置一些值 如果我理解正确,这有两个部分 让OS X知道.abc扩展必须与我的应用程序关联 启动后在我的应用程序中处理文件 现在我对第一部分有意见。我已经读过一些关于这个
- 让OS X知道.abc扩展必须与我的应用程序关联
- 启动后在我的应用程序中处理文件
(我尝试过abc,但不起作用)和键
的字符串值内容的
到目前为止,这是我添加到info.plist文件中的代码
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<array>
<string>myicon.icns</string>
</array>
<key>CFBundleTypeName</key>
<string>My Custom Project File</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>don't.know.what.to.put.here.abc</string>
</array>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string> <!--not sure about that value-->
</array>
<key>UTTypeDescription</key>
<string>My Custom Project File</string>
<key>UTTypeIdentifier</key>
<string>don't.know.what.to.put.here.abc</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>abc</string>
<key>public.mime-type</key>
<string>application/octet-stream</string> <!--not sure about that value-->
</dict>
</dict>
</array>
CbundleDocumentTypes
CbundleTypeConfigile
myicon.icns
CbundleTypeName
我的自定义项目文件
CbundleTypeRole
编辑
伊斯汉德兰克
所有者
lsItemContentType
不知道要放什么放在这里
UTExportedTypeDeclarations
Uttypecommisto
公共数据
UTTypeDescription
我的自定义项目文件
UTTypeIdentifier
不知道要放什么放在这里
Uttypetag规范
public.filename-extension
abc
public.mime-type
应用程序/八位字节流
另外,在我的情况下,UTTypeConformsTo
public.data是否正常?因为定制的文件扩展名表示包含xml文件的存档
如果有人能帮我:)
感谢我找到了问题的解决方案,我只是误读了文档,因为key
CFBundleTypeIconFile
是一个字符串,而不是字符串数组(我很困惑,因为我在使用keyCFBundleTypeIconFiles
这是一个数组),我找到了问题的解决方案,我只是误读了文档,因为键CbundletTypeIConfile
是一个字符串,而不是字符串数组(我很困惑,因为我在下面的iOS示例中使用了键CbundletTypeIConfile
这是一个数组)请随意回答您自己的问题:我认为编辑是一种方式!很容易忽略问题(IMHO)中发布的答案。好吧,我只是再次编辑了原始帖子并写了一个新答案。谢谢你的提示:)我也有这个问题。您必须提供的最低信息量是多少?我只尝试了CbundleTypeName
和LSHandlerRank
,但它不起作用。请随意回答您自己的问题:我认为编辑是一种方式!很容易忽略问题(IMHO)中发布的答案。好吧,我只是再次编辑了原始帖子并写了一个新答案。谢谢你的提示:)我也有这个问题。您必须提供的最低信息量是多少?我只尝试使用CbundleTypeName
和LSHandlerRank
但它不起作用。