1

ここで説明するように、LSSharedFileList APIを使用して、Finderのお気に入りサイドバーにカスタムの場所を追加したいと思います。ただし、このアイテムにカスタムアイコンを追加する必要があります。アイコンはIconRefタイプに含まれている必要があります。私はそれをする方法を見つけていません。アイコンサービスを使用する必要があるという事実についての言及のみが見つかりました。しかし、どのように?

4

1 に答える 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 に答える