LoginSignup
2
2

More than 5 years have passed since last update.

[Swift] Finderなどで使用されるタグ/ラベルにアクセスする

Last updated at Posted at 2017-02-15

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

SwiftではNSURLではなくURLの利用が推奨されているようですが、現在のところタグをセットするにはNSURLを使うしかありません。(Appleに変更する意思があるかどうかは不明です)
いちいちNSURLにキャストするのは面倒くさいのでURLを拡張します。

extension URL {

    public var tagNames: [String]? {

        get {
            let values = try resourceValues(forKeys: [.tagNamesKey])

            return values?.tagNames
        }

        set {

            do {

                let url = self as NSURL
                try url.setResourceValue(tagNames, forKey: .tagNamesKey)

            } catch {

                print("Can not set tagNames.")
            }
        }
    }
}

見ての通りですが取得に関してはNSURLだけでなくURLでも可能です。

文字列 "red"、 "orange" などを設定するとFinder上ではレッド、オレンジのタグ(ラベル)が付きます。

ラベルの設定

extension URL {

    public var labelNumber: Int? {

        get {

            let values = try? self.resourceValues(forKeys: [.labelNumberKey])

            return values?.labelNumber
        }

        set {

            do {

                let url = self as NSURL
                try url.setResourceValue(newValue, forKey: .labelNumberKey)

            } catch {

                print("Can not set labelNumber")
            }
        }
    }
}

2
2
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
2
2