Можно ли программно изменить значок тома на подключенном диске в Mac OS X?

Я хочу программно изменить значок тома для стековой файловой системы, реализованной с использованием OSXFUSE (ранее MacFUSE). Значок должен отражать состояние смонтированной файловой системы.

Подход, который я пытался использовать, заключается в отображении запросов для /.VolumeIcon.icns на соответствующий значок в пакете приложения. Затем отправьте в файловую систему уведомления об изменении фактического пути (пути) и пути монтирования (mountPath).

    [[NSWorkspace sharedWorkspace] noteFileSystemChanged: @"/Volumes"]; 
    [[NSWorkspace sharedWorkspace] noteFileSystemChanged: [mountPath stringByDeletingLastPathComponent]];
    [[NSWorkspace sharedWorkspace] noteFileSystemChanged: mountPath];
    [[NSWorkspace sharedWorkspace] noteFileSystemChanged: [path stringByDeletingLastPathComponent]];
    [[NSWorkspace sharedWorkspace] noteFileSystemChanged: path];

    FNNotifyByPath([[[mountPath stringByDeletingLastPathComponent] dataUsingEncoding:NSUTF8StringEncoding] bytes], kFNDirectoryModifiedMessage, kNilOptions);
    FNNotifyByPath([[[path stringByDeletingLastPathComponent] dataUsingEncoding:NSUTF8StringEncoding] bytes], kFNDirectoryModifiedMessage, kNilOptions);
    FNNotifyByPath([[@"/Volumes" dataUsingEncoding:NSUTF8StringEncoding] bytes], kFNDirectoryModifiedMessage, kNilOptions);

Проходя через отладчик, я вижу, что этот код срабатывает, но код для сопоставления /.VolumeIcon.icns вызывается редко и никогда в ответ на эти уведомления.

12
задан Charles 10 February 2012 в 14:17
поделиться