Я хочу программно изменить значок громкости для стековой файловой системы, реализованной с использованием OSXFUSE (ранее MacFUSE).Значок должен отражать состояние смонтированной файловой системы.
Подход, который я пытался заставить работать, заключается в сопоставлении запросов для /.VolumeIcon.icns с соответствующим значком в комплекте приложений.Затем отправка уведомлений об изменениях в файловую систему с указанием фактического пути (path) и пути монтирования (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 вызывается нечасто и никогда в ответ на эти уведомления.