我正在寻找最佳方法来添加新的文件扩展名类型 (.xyz) 并将图标与 SnowLeopard 中该类型的所有文件关联起来。
答案1
这取决于您是否希望特定应用程序打开这些文件类型,或者不与它们关联。
如果您希望它们使用特定应用程序打开,您可以在其中一个文件中选择该应用程序获取信息对话并检查始终打开在选择对话框中。
现在这个文件扩展名与该应用程序相关联,但可能有一个通用图标。图标是关联应用程序的责任,所以我们需要更改它。
现在您需要编辑应用程序的包:
右键单击要处理这些文件扩展名的应用程序并选择显示包装内容。导航至Contents
,然后编辑Info.plist
。您可能需要属性列表编辑器,它是 Apple 开发者工具的一部分。如果你幸运的话,它是一种 XML 格式。编辑此文件CFBundleDocumentTypes
并为扩展名添加以下内容.foo
:
<key>CFBundleDocumentTypes</key>
<array>
<!-- keep the other entries! -->
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>foo</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>FooDocument</string>
<key>CFBundleTypeName</key>
<string>Foo Document</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
保存文件。
对于图标,您需要在AppName.app/Contents/Resources/
命名中创建一个名为的文件FooDocument.icns
。您可以icns
使用以下方式创建文件预览或专门的公用设施。
每次更新应用程序时,您都需要重复此操作。
如果您不想让文件使用特定应用程序打开,您可以创建一个新的“虚拟”应用程序包(它甚至不需要能够启动),在其中放置图标并添加CFBundleDocumentTypes
上面的信息。