Finderなどで使用されるタグ。
実はAppleEvent(AppleScript)などを使わずに直接アスセスすることが可能です。
このAPI、NSFileManagerあたりにありそうですが、なんと、NSURLに存在します。
NSURL.h内で Resource accessとコメントされている
- (BOOL)getResourceValue:(out id __nullable * __nonnull)value forKey:(NSString *)key error:(out NSError ** __nullable)error NS_AVAILABLE(10_6, 4_0);
- (BOOL)setResourceValue:(nullable id)value forKey:(NSString *)key error:(NSError **)error NS_AVAILABLE(10_6, 4_0);
で直接アクセスが可能です。
キーは NSURLTagNamesKey
値の型は NSArray<NSString *> *
です。
また、 red
、 orange
などを設定するとFinder上ではレッド、オレンジのタグが付きます。
以下、例。
- (NSArray *)tags
{
NSError *error = nil;
NSArray *tags;
if(![self.url getResourceValue:&tags forKey:NSURLTagNamesKey error:&error]) {
if(error) {
NSLog(@"get tags error -> %@", error);
}
return @[];
}
return tags;
}
- (void)setTags:(NSArray *)tags
{
NSError *error = nil;
[self.url setResourceValue:tags forKey:NSURLTagNamesKey error:&error];
if(error) {
NSLog(@"set tags error -> %@", error);
}
}