为什么我的文档图标在属性中可见,但在桌面上却不可见?
Why is my document icon visible in properties but not on the Desktop?
我做了一个cocoa应用程序,文档保存正常,当我双击一个它会自动打开我的应用程序。我只需要弄清楚如何设置文件图标。
我已经为文件创建了一个 .icns 图标。这是我得到的
如您所见,该文档 "blank" 在桌面上,但 Finder 以某种方式知道它的图标。
这是我的Info.plist
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<string>FileIcon.icns</string>
<key>CFBundleTypeName</key>
<string>My Type</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>xxx</string>
</array>
<key>NSDocumentClass</key>
<string>Document</string>
</dict>
</array>
我试过了:
- 以上代码
- 上面的代码没有 .icns
- 使用我用来创建 .icns
的文件向 Images.xcasset 添加新的 OSX 图标
结果都一样。有什么想法吗?
事实证明不需要 .icns,我用上一个解决方案再次测试(将新的 OSX 图标添加到 Images.xcassets)并且成功了。
我也不知道它是否有影响,但我 运行 :
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain user
这是为有类似问题的人在 SO 上发布的
确保您的图标不包含 transparency/alpha 值(如果图标是 .png 或 .tiff)。在这种情况下,删除透明度或另存为 .jpeg.
我做了一个cocoa应用程序,文档保存正常,当我双击一个它会自动打开我的应用程序。我只需要弄清楚如何设置文件图标。
我已经为文件创建了一个 .icns 图标。这是我得到的
如您所见,该文档 "blank" 在桌面上,但 Finder 以某种方式知道它的图标。
这是我的Info.plist
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<string>FileIcon.icns</string>
<key>CFBundleTypeName</key>
<string>My Type</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>xxx</string>
</array>
<key>NSDocumentClass</key>
<string>Document</string>
</dict>
</array>
我试过了:
- 以上代码
- 上面的代码没有 .icns
- 使用我用来创建 .icns 的文件向 Images.xcasset 添加新的 OSX 图标
结果都一样。有什么想法吗?
事实证明不需要 .icns,我用上一个解决方案再次测试(将新的 OSX 图标添加到 Images.xcassets)并且成功了。
我也不知道它是否有影响,但我 运行 :
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain user
这是为有类似问题的人在 SO 上发布的
确保您的图标不包含 transparency/alpha 值(如果图标是 .png 或 .tiff)。在这种情况下,删除透明度或另存为 .jpeg.