14

別のアプリケーションのプラグインとして使用される MyBundle.bundle という Mac OSX バンドルをコンパイルします。バンドルに一意のアイコンを付けたいので、Info.plist ファイルを次のように設定します。

<key>CFBundleIconFile</key>
<string>MyIcon.icns</string>

ファイル MyIcon.icns をバンドルの MyBundle.bundle/Contents/Resources フォルダーに配置します。

これは機能しません。ファインダーはバンドルの汎用アイコンを表示し、指定された MyIcon.icns ファイルを無視します。バンドルの拡張子を .bundle から .app に変更すると、アイコンがすぐに表示されるので、Info.plist が正しいことがわかります。

バンドルのアイコンをコピーして貼り付けるユーザーをシミュレートする回避策を見つけました。

アイコンをタイプ「icns」および ID -16455 のリソースとしてバンドルの .rsrc ファイルに追加します。

私は電話するより

/Developer/Tools/SetFile -a BC MyBundle.bundle

これは機能しますが、本当に不自由です。Mac OS 10.8 以降では、SetFile の実行に時間がかかります。

私の質問: そのようなハックなしで Finder にバンドルのアイコンを強制的に表示させる方法はありますか?

ところで:同じ件名に関する質問があります:アプリ以外のMac OS Xバンドルのアイコンを設定します。しかし、そこにある唯一の答えは、アイコンの作成方法を示しており、問題の解決には役立ちません。

4

4 に答える 4

5

NSワークスペースを使用できます

[[NSWorkspace sharedWorkspace] setIcon:(NSImage *)image forFile:(NSString *)fullPath options:(NSWorkspaceIconCreationOptions)options]

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/Reference/Reference.html

于 2013-01-25T05:04:31.740 に答える
4

このソリューションは、すべての .bundle に同じアイコンを関連付けます。これが必要なものかどうかわかりません(または、.bundleごとに特定の/異なるアイコンが必要な場合)。

アプリ バンドルを変更できる場合: アプリに関連付けるドキュメント タイプを定義できます。そのためには、アプリ パッケージを編集する必要があります。

  • プラグイン アイコンをアプリ リソースに配置します。TheOtherApp.app/Contents/Resources/MyIcon.icns
  • を編集して、次のTheOtherApp.app/Contents/Info.plistように追加します。

     <key>CFBundleDocumentTypes</key> 
     <array>
      <dict>
        <key>CFBundleTypeName</key>
        <string>TheOtherApp Plugin</string>
        <key>CFBundleTypeRole</key>
        <string>None</string>
        <key>CFBundleTypeIconFile</key>
        <string>FlexoDocument.icns</string>
        <key>CFBundleTypeExtensions</key>
        <array>
          <string>bundle</string>
        </array>
        <key>LSTypeIsPackage</key>
        <string>true</string>
      </dict>
    </array>
    

developer.apple.comのCFBundleDocumentTypesに関する詳細情報

効果を確認するには、ファインダーやアプリを再起動する必要がある場合があります。

于 2013-01-26T14:01:24.420 に答える
0

ファイルの.icns一部なしで試してください:plist.info

<key>CFBundleIconFile</key>
<string>MyIcon.icns</string>

次のように変更します。

<key>CFBundleIconFile</key>
<string>MyIcon</string>

この手法を使用して、ここでカスタムアイコンを使用してバンドルを正常に作成します: https://gist.github.com/Noitidart/6a2cbe0b4c74499765be

于 2015-01-13T16:31:43.773 に答える
-4

簡単な方法: 画像ファイルを開き、すべてのコピーを選択し、項目をクリックし、apple-i で情報を取得し、ポップアップ ウィンドウのアイコンをクリックして、apple-v をクリックします。

それはそれが得るのと同じくらい簡単です。

于 2013-01-25T04:40:34.653 に答える