Как я могу условно покрасить файлы и папки в 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