我想使用 LSSharedFileList API 将自定义位置添加到 Finder 收藏夹边栏,如此处所述。但我需要为这个项目添加一个自定义图标。图标应该在IconRef
类型中。我还没有找到办法。发现只提到了需要使用Icon Services的事实。但是怎么做?
问问题
1012 次
1 回答
2
您可以使用Scplugin的此功能。
static IconRef IconRefFromIconFileNoCache(CFStringRef file)
{
IconRef iconRef;
IconFamilyHandle iconFamily;
FSRef fileRef;
CFURLRef url;
Boolean ok;
url = CFURLCreateWithFileSystemPath(NULL,file,kCFURLPOSIXPathStyle,false);
if (!url)
return 0;
ok = CFURLGetFSRef(url,&fileRef);
CFRelease(url);
if (!ok)
return 0;
if (ReadIconFromFSRef(&fileRef, &iconFamily))
return nil;
iconRef = 0;
HLock((Handle)iconFamily);
GetIconRefFromIconFamilyPtr(*iconFamily,(**iconFamily).resourceSize,&iconRef);
DisposeHandle((Handle)iconFamily);
return iconRef;
}
于 2012-09-05T14:08:00.127 回答