在Finder 10.8.2中强制项目图标刷新

时间:2013-05-14 12:55:45

标签: objective-c macos icons overlay finder

任何人都可以带我到任何有用的链接,在新的10.8.2版本的Finder中强制文件图标刷新吗?

我正在研究这个问题最近几天,我已经尝试了几乎任何可以的解决方案 可以在互联网上找到,但这些都是旧的样本,与旧版本的Finder兼容,不适用于较新版本的Finder(在Cocoa框架上重建)。

我尝试使用苹果脚本工具中的少量命令来更新Finder中的文件('更新项目有必要'),我尝试了几个来自互联网的插件(nudge,finder-Refresh ...),我也尝试过支持通信通过ScriptingBridge框架使用外部Mac应用程序(虽然非常有用),但没有给我一个理想的结果。

我注意到NSWorkspace类包含两个方法:iconForFile和setIcon:forFile, 虽然我可以在应用程序中集成这两个函数,但是iconForFile函数正在返回质量降低的图像,所以我也被困在那个方向。

任何想法或建议都将受到高度赞赏。

6 个答案:

答案 0 :(得分:4)

创建可见文件并将其删除。这将刷新查找器窗口。

答案 1 :(得分:1)

我也有这个问题。我有一个.app我想改变它的图标。

.app的结构:

  • ...noida.app/
    • ...noida.app/Contents/
      • ...
    • ...noida.app/Contents/Resources
      • ...noida.app/Contents/Resources/myicon.icns
    • ...noida.app/Contents/MacOS
      • ...
    • ...noida.app/Contents/plist.Info

现在我将更改资源文件夹中的图标。然后我在所有文件夹中创建了新文件。它不会起作用。我可以创建新文件的唯一地方是...noida.app/,所以我在...noida.app/junk folder创建了新文件,然后更新了。

非常有趣。

答案 2 :(得分:1)

我只是在10.10上与此斗争(虽然它已成为多年来一直存在的问题)并且我发现在Finder中强制刷新捆绑图标的唯一解决方案是:

  1. 打开"获取信息窗口"要更新的捆绑包,然后单击选择该图标。
  2. 将另一个图像粘贴为图标(您可以从其他文件或使用此粘贴板数据的任何其他位置复制此图像)。
  3. 按返回并确保在Finder中更改了图标。
  4. 按删除键删除图标。
  5. 之后,bundles图标被刷新到bundles资源文件夹中的新.icns文件。

答案 3 :(得分:1)

输入终端

killall Finder

然后

killall Dock

答案 4 :(得分:1)

如果您需要更新一个应用程序图标,只需触摸App.app文件夹。

关闭取景器窗口并发出命令:

touch /Applications/App.app

答案 5 :(得分:0)

要重置Mountain Lion下的每个应用程序,请在终端中尝试以下操作:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -seed -r

这将终止启动服务中的所有现有对象,并从标准位置(/ Applications等)递归地重新设置它们。

如果您有一个特定的应用程序,您需要覆盖现有信息的数据,您可以尝试:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f <path>

虽然后者在某些情况下工作的运气有限,但你可能最终会在事后做这件事。