ファイルのFinderラベルを(とりわけ)表示および変更できるアプリがあります。とメソッドを介して色とラベルを取得し、とメソッドを使用してファイルNSWorkspace
のラベルを取得および設定します。これはすべてうまくいきます。finderLabels
finderLabelColors
NSURL
getResourceValue:forKey:error:
setResourceValue:forKey:error:
この問題は、Finder の設定でラベルの名前を変更すると発生します。は、ユーザーが入力したカスタム ラベル名ではなく、常に既定の名前 ("Red"、"Orange" など) を与えることNSWorkspace
がわかりました。finderLabels
このプロジェクトで、カスタム Finder ラベル文字列を正しく取得するコードを見つけましたが、Finder 設定にアクセスする (具体的には を呼び出す) ことによって行ってい[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.Labels"]
ます。気分が悪いだけでなく、NSUserDefaults リファレンスには次のように記載されています。
サンドボックスに関する考慮事項
サンドボックス化されたアプリは、他のアプリの設定にアクセスしたり変更したりすることはできません。
私のアプリはサンドボックス化されているため、明らかに機能しません。
私の質問は、 がカスタム Finder ラベル文字列を返さないNSWorkspace
のはなぜfinderLabels
ですか?サンドボックス化されたアプリでこれを実現できる他の方法はありますか?