Как я могу условно покрасить файлы и папки в OS X Finder?

Я хочу раскрасить файлы значков и папки, основываясь на некоторых условиях в Finder, каков подход для достижения этого в Mac OS X 10.6

Я проверил этот вопрос: этот разговор только о контекстном меню в плагине Finder Finder в Snow Leopard

Я даже проверил: http://scplugin.tigris.org/ даже они не выполняют цветную маркировку в 10.6, которая находится на рассмотрении.

Заранее спасибо за вашу помощь

5 ответов

Решение

К сожалению, для этого нет общедоступного API. Вам нужно внедрить код в Finder и исправить его.

До 10.6 было довольно легко вводить коды в приложение Какао, просто используя InputManager s. Это больше не так, но вы можете сделать это, используя OSAX, смотрите этот пост в блоге. SIMBL делает это автоматически.

Но вы должны выяснить, что происходит внутри Finder чтобы увидеть, как исправить вещи. Чтобы исследовать изнутри Finder F-Script где-нибудь вам поможет.

Удачи и удачи!

Вы можете использовать URL Resource API, который был представлен в Mac OS X 10.6.

NSURL* fileURL = [NSURL fileURLWithPath:@"/Path/to/file"];

id labelValue = nil;
NSError* error;
if([fileURL getResourceValue:&labelValue forKey:NSURLLabelNumberKey error:&error])
{
    NSLog(@"The label value is %@",labelValue);
}
else
{
    NSLog(@"An error occurred: %@",[error localizedDescription]);
}

Вы можете использовать как NSURLLabelNumberKey чтобы получить номер назначенного ярлыка Finder или NSURLLabelColorKey чтобы получить реальный цвет.

Вы можете установить значения меток, используя соответствующий метод:

- (BOOL)setResourceValue:(id)value forKey:(NSString *)key error:(NSError **)error

Для тех, кто все еще нуждается в ответе на это здесь, вы идете.

NSURL *fileURL = [NSURL fileURLWithPath:path_to_file];
NSError *error;
id labelColor = nil;

[fileURL setResourceValue:@2 forKey:NSURLLabelNumberKey error:&error]; //Set tag/label to green
[fileURL setResourceValue:@6 forKey:NSURLLabelNumberKey error:&error]; //Set tag/label to red

Гаррет Хайд имеет правильный порядок.

//  0 none, 1 grey, 2 green, 3 purple, 4 blue, 5 yellow, 6 red, 7 orange

Приведенный выше код был протестирован с использованием Xcode 4.6.3 и OSX 10.9.2 Mavericks.

Тебе нужен яблочный скрипт. Таким образом, вы можете использовать скриптовый мост или NSApplescript для написания скриптов в Finder в какао. Вот простой appleScript, чтобы показать, как это сделать.

set a to (choose file)
tell application "Finder"
    -- label colors
    -- 0 none, 1 orange, 2 red, 3 yellow, 4 blue, 5 purple, 6 green, 7 grey
    set label index of a to 6
end tell

Я думаю NSURLLabelNumberKey значения:

//  0 none, 1 grey, 2 green, 3 purple, 4 blue, 5 yellow, 6 red, 7 orange
Другие вопросы по тегам