我的桌面上有一个别名(也测试了整个过程中带有符号链接和相同的行为)文件,它指向一个应用程序包。我已将此别名文件拖到我的Dock中。在此应用包中,我更改了图标(通过更改其中包含的icns文件),在killall Dock
killall Finder
更新我的基座后。但是桌面上的别名文件不会更新。如果我右键单击并执行"获取信息"在我的别名文件中它显示更新的图标,这是非常奇怪的,因为桌面没有显示此更新的图标。
如果我将别名文件从桌面移动到另一个文件夹,图标会更新。但是一旦我将别名移回桌面,它就会恢复。
然后我使用了objective-c:我已经使用此代码更改了它指向的应用程序包上的图标,效果与上面相同(在killall之后它会更新除桌面以外的所有地方,并拖动它到一个新文件夹更新它,并在拖回它恢复)。
iconPath = [[NSString alloc] initWithUTF8String: blah/blah/blah];
icon = [[NSImage alloc] initWithContentsOfFile: iconPath];
filePath = [[NSString alloc] initWithUTF8String: blah/blah/blah];
[[NSWorkspace sharedWorkspace] setIcon: icon forFile: filePath options: 0]
我尝试使用此代码来设置别名文件图标,同样的影响,它除了桌面以外的任何地方都需要。
如果我将桌面上的别名文件重命名为新的,则更新的图标会显示,如果我将别名恢复为原始名称,则会显示未更新的图标。似乎有文件路径和图标的历史记录。有谁知道如何更新图标?
以下是该情况的屏幕截图,左侧的获取信息窗口是桌面上别名文件的获取信息项。