Cocoa NSWorkspace setIcon:forFile:options:不起作用

时间:2014-06-18 10:57:30

标签: objective-c cocoa nsworkspace

我正在将png文件复制到某个目标文件夹,然后将其图标设置为某个特殊图标。但是,图标不会更改 - 它仍然是png文件的预览。 是否可以强制替换图标?也许以编程方式禁用png使用预览图像的倾向?

我在做的是:

[[NSFileManager defaultManager] copyItemAtPath:filename toPath:path error:nil];
NSImage* iconImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myIcon" ofType:@"icns"]];
[[NSWorkspace sharedWorkspace] setIcon:iconImage forFile:path options:0];

P.S。 - 上面的代码适用于没有预览功能的文件(比如我用自己的特殊后缀手动创建的文件)。

谢谢, 尼丽

1 个答案:

答案 0 :(得分:0)

显然,复制[[NSFileManager defaultManager] copyItemAtPath:]的文件正在显示使用快速查看机制生成的旧图标。 由我的应用程序创建并立即通过我的应用程序获取其图标的文件不会被快速查看机制打断。 我的解决方案不是复制文件,而是自己创建文件然后一切顺利。

虽然想要获得更好的答案/解决方法...