gpt4 book ai didi

cocoa - 检测 Cocoa 中是否设置了自定义文件图标

转载 作者:行者123 更新时间:2023-12-03 16:37:17 25 4
gpt4 key购买 nike

我编写了一个为某些文件设置自定义图标的应用程序,但由于创建这样的图标非常昂贵,我想测试之前是否已经设置了自定义图标。对于自定义图标,我指的是不是 OS X 设置的默认图标的图标。特别是,我可以为具有相同类型的不同文件使用不同的图标。

我已经尝试检查[NSURL resourceValuesForKeys:[NSArray arrayWithObjects:NSURLCustomIconKey,NSURLEffectiveIconKey,nil] error:nil],但与NSURLEffectiveIconKey关联的对象始终是非- nil 和 NSURLCustomIconKey 似乎为零,即使我调用 [NSURL setResourceValue:myNonNilImage forKey:NSURLCustomIconKey error:nil]

顺便调用[[NSWorkspace sharedWorkspace] setIcon:myImage forFile:myFilename options:0]似乎是更改Finder中显示的图标的唯一方法。

最佳答案

NSURLCustomIconKey 始终返回 nil,因为尚未实现对此键的支持。 header 中提到了这一重要信息,但 NSURL 文档中没有提到。在支持之前,获取此信息的一种方法是通过已弃用的文件管理器方法:

- (BOOL)fileHasCustomIcon:(NSString *)path {
FSRef ref;
FSCatalogInfo info;

if (FSPathMakeRef((const UInt8 *)[path fileSystemRepresentation], &ref, NULL) == noErr) {
if (FSGetCatalogInfo(&ref, kFSCatInfoFinderInfo, &info, NULL, NULL, NULL) == noErr) {
FileInfo *fileInfo = (FileInfo *)(&info.finderInfo);
return (fileInfo->finderFlags & kHasCustomIcon) != 0;
}
}

return NO;
}

关于cocoa - 检测 Cocoa 中是否设置了自定义文件图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com