#objective-c #cocoa #nsworkspace
#objective-c #cocoa #nsworkspace
Вопрос:
Я копирую файл png в некоторую целевую папку, а затем устанавливаю для его значка какой-то специальный значок. Однако значок не меняется — он остается предварительным просмотром файла png. Можно ли принудительно заменить значок? Возможно, программно отключить тенденцию png использовать изображение предварительного просмотра?
То, что я делаю, это:
[[NSFileManager defaultManager] copyItemAtPath:filename toPath:path error:nil];
NSImage* iconImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myIcon" ofType:@"icns"]];
[[NSWorkspace sharedWorkspace] setIcon:iconImage forFile:path options:0];
PS — приведенный выше код отлично работает для файлов, у которых нет функции предварительного просмотра (например, файлов, которые я создал вручную со своим специальным суффиксом).
Спасибо, Нили
Комментарии:
1. Возможно, вам захочется взглянуть на API быстрого просмотра
Ответ №1:
По-видимому, файлы, которые были скопированы [[NSFileManager defaultManager] copyItemAtPath:], отображают свой старый значок, который создается с помощью механизма быстрого просмотра. Файлы, которые создаются моим приложением и сразу же получают свой значок в моем приложении, не прерываются механизмом быстрого просмотра. Мое решение — не копировать файл, а создавать его самостоятельно, и тогда все работает гладко.
Хотелось бы получить лучший ответ / обходной путь…