Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 图标不会出现在桌面上,但会出现在其他地方_Objective C_Macos_Icons - Fatal编程技术网

Objective c 图标不会出现在桌面上,但会出现在其他地方

Objective c 图标不会出现在桌面上,但会出现在其他地方,objective-c,macos,icons,Objective C,Macos,Icons,我有一个别名,在我的桌面上用一个符号链接和相同的行为文件测试了整个过程,它指向一个应用程序包。我已将此别名文件拖到我的dock。在这个应用程序包中,我通过更改其中包含的icns文件更改了图标,在killall Dock killall Finder更新了我的Dock之后。但是,桌面上的“我的别名”文件不会更新。如果我右键单击并在alias文件上获取信息,它会显示更新的图标,这很奇怪,因为桌面上没有显示此更新的图标 如果我将alias文件从桌面移动到另一个文件夹,图标会更新。但一旦我将别名移回桌面

我有一个别名,在我的桌面上用一个符号链接和相同的行为文件测试了整个过程,它指向一个应用程序包。我已将此别名文件拖到我的dock。在这个应用程序包中,我通过更改其中包含的icns文件更改了图标,在killall Dock killall Finder更新了我的Dock之后。但是,桌面上的“我的别名”文件不会更新。如果我右键单击并在alias文件上获取信息,它会显示更新的图标,这很奇怪,因为桌面上没有显示此更新的图标

如果我将alias文件从桌面移动到另一个文件夹,图标会更新。但一旦我将别名移回桌面,它就会恢复

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]
于是我求助于objective-c:我用这段代码更改了它指向的应用程序包上的图标,与上面的效果相同,在killall的it更新了除桌面以外的所有位置,并将其拖动到一个新文件夹中更新它,然后再将其拖回

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]
我试着用这段代码来设置别名文件图标,同样的效果,除了桌面,它无处不在

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

这是一个屏幕截图,左边的获取信息窗口是桌面上alias文件的获取信息项


检查此项谢谢@xhruso00立即检查!!:我为此挣扎了很长时间!老兄,看起来你没被选上真是假的!拖动它不工作:使用qlmanager-r缓存。看起来小图标是由quicklook生成的,正在缓存中。此外,源代码还有一些与IKImageBrowser相关的内容,即shouldUseIKFinderMode。谷歌iImageBrowser缓存这可能会有所帮助