图标不占用桌面,但占用其他地方

时间:2015-09-29 15:56:24

标签: objective-c macos icons

我的桌面上有一个别名(也测试了整个过程中带有符号链接和相同的行为)文件,它指向一个应用程序包。我已将此别名文件拖到我的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]

我尝试使用此代码来设置别名文件图标,同样的影响,它除了桌面以外的任何地方都需要。

如果我将桌面上的别名文件重命名为新的,则更新的图标会显示,如果我将别名恢复为原始名称,则会显示未更新的图标。似乎有文件路径和图标的历史记录。有谁知道如何更新图标?

以下是该情况的屏幕截图,左侧的获取信息窗口是桌面上别名文件的获取信息项。

0 个答案:

没有答案