2
私のMacOSプログラムは別のファイルへのエイリアスを作成しています。このエイリアスには指定されたアイコンが必要です。 Objective-C、できればCocoaでどうすればいいですか?Objective-CのMacOSでファイルのアイコンを変更するには?
私のMacOSプログラムは別のファイルへのエイリアスを作成しています。このエイリアスには指定されたアイコンが必要です。 Objective-C、できればCocoaでどうすればいいですか?Objective-CのMacOSでファイルのアイコンを変更するには?
あなたはこれを行うための方法を持っているNSWorkspace
を、使用することができます。
//anImage is an NSImage object and
//pathToFile is a path string
[[NSWorkspace sharedWorkspace] setIcon:anImage forFile:pathToFile options:0];
これは、ファイルのリソースフォークにアイコンデータが保存されます。最近Mac OSは実際のリソースフォークを使用しないので、イメージはcom.apple.ResourceFork
という名前のHFS拡張属性に格納されます。
拡張属性は、ファイルに添付されたファイルシステムメタデータです。ファイルに添付されている拡張属性は、xattr
とそれに関連するコマンドを使用して確認できます。
拡張属性は、ファイルがファイルメタデータをサポートしていないファイルサーバー上またはHFS以外のファイルシステムを持つ外部ドライブ上にある場合、HFS +ファイルシステム上でのみ信頼性が保証されます。アイコン書かれていないかもしれない。
ありがとうございました。信じられないほど簡単に見えます。そして、これは実際にファイルに対して何をするのでしょうか?このメソッドはNSImageをどこに配置しますか? – BartoNaz
ファイルのリソースフォークに格納されます。最近Mac OSは実際のリソースフォークを使用しないので、イメージは 'com.apple.ResourceFork'というHFS拡張属性に保存されます。拡張属性は、ファイルに添付されたファイルシステムのメタデータです。 'xattr'とそれに関連するコマンドを使ってファイルに付加された拡張属性を見ることができます。 –
OK。ありがとうございました。私はそれを受け入れることができるようにあなたの答えを答えて投稿することができます。 – BartoNaz