2011-08-06 4 views
1

ファイルの作成者コード/タイプコードに応じてカスタムアイコンを表示する方法たとえば、クリエイターコード 'TSTx'でファイルを開くアプリケーションがありますが、そのクリエーターコードのアイコンを設定するにはどうすればよいですか?OSXで作成者コードのアイコンを表示

Cyber​​duckのようなアプリは、ファイル拡張子を変更せずにファイルをダウンロードしているときに進捗アイコンが表示され、それが私が複製しようとしている動作だと思います。あなたはこのためクリエーターと種類のコードに頼るべきではありません

おかげで、 J

答えて

3

。すべてのファイルに割り当てられているわけではありません。実際、すべてのアプリでもユニークなクリエイターコードがあるわけではありません。

これらのファイルがファイルシステムに存在し、適切なパス拡張子を持っている場合は、-[NSWorkspace iconForFile:]がこのトリックを行う必要があります。ファイルがファイルシステムに存在しない場合(例えば、データベースに格納されているため)、-[NSWorkspace iconForFileType:]が行く方法です。パス拡張子を指定することもできますし、もしあなたが主張しているならば、HFSタイプのコード(the NSFileTypeForHFSTypeCode functionという文字列で囲む必要があります)を指定することもできます。

Finderで使用するカスタムアイコンを設定するには、タイプとクリエイターコードは必要ありません。 -[NSWorkspace setIcon:forFile:options:]を使用してください。

+0

返信ありがとうございますが、このインスタンスでは、作成者コードとタイプコードが存在することを保証することができます。私はちょうどコードに基づいてFinderにアイコンを表示する必要があります。 Cyber​​duckのファイル拡張子は同じままですが、アイコンが一時的に変更されるような動作を再現しようとしているので、拡張子は有効なオプションではありません。 – JWood

+0

私は混乱しています - あなたのアプリにアイコンを表示するか、Finderでカスタムアイコンを設定しますか? Finderで使用するカスタムアイコンを設定するには、タイプとクリエータコードは必要ありません。 ' - [NSWorkspace setIcon:forFile:options:]'を使用してください。 (私はこのオプションを含むように私の答えを編集しました) – gcbrueckmann

+0

ファインダでアイコンを設定したいのですが、 'NSWorkspace setIcon:forFile:options'は、ファイルを書き込み可能にする必要があるためオプションではありません(私はそれを推測していますリソースフォークを更新しますか?)ファイルシステムは読み取り専用ですが、一部のファイルには特定のHFSタイプのコードが含まれています。 Finderで読み取ったファイルデータがアイコンを作成しないようにするには、静的アイコンを関連付けるだけです。 – JWood

関連する問題