どのように私は自分のアプリケーションのアイコンのNSImageでは表現をロードすることができますか?

StackOverflow https://stackoverflow.com/questions/1359060

  •  20-09-2019
  •  | 
  •  

質問

私は私のココアアプリケーション用に設定されたカスタムアイコンファイル(MyApp.icns)を持っています。どのように私は自分のアプリケーション内からアイコンのNSImage表現にアクセスすることができますか?

次のようなものは完璧になるます:

NSImage * iconImage = [MyApplication defaultIconAsImage];

しかし、私はそれが簡単にのことのではありません確信している:)

次のように私は、もちろん、アイコンファイルへのパスを取得することができます:

NSString * iconPath = [[NSBundle mainBundle]
                       pathForResource:@"MyApp" ofType:@"icns"];

しかし、名前が変更される可能性があるため、名前でそれを呼び出す以外のアプリケーションのためののアイコンファイルにアクセスするための標準的な方法のいくつかの種類があるべきであるように私には思える。

これを行うための適切な方法は何ですか?

役に立ちましたか?

解決

<のhref = "http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSApplication_Class/Reference/Reference.html#//apple_ref/occ/instm/NSApplication/ applicationIconImage」のrel = "noreferrer"> [NSApp applicationIconImage]

他のヒント

ただ、完全性について - 。これは、あなたのシステム上で任意のアプリケーションやファイルのアイコンを取得する方法である。

NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];

アプリケーションアイコンまたはファイルに関連付けられたアイコンのファイルへのパスのためのアプリケーションバンドルへのパスを渡します。

カスタムアイコンがアプリに貼り付けられるとき-[NSApplication applicationIconImage]が正しいアイコンを返さないことに注意してください。次に、あなたが行う必要があります:

NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];

(私はクロムのために書いたドックアイコンコードを参照:ます。http: //src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mmする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top