LoginSignup
5
7

More than 5 years have passed since last update.

Finderなどで使用されるタグにアクセスする

Last updated at Posted at 2016-05-28

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 *> * です。

また、 redorange などを設定すると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);
    }
}

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7