どのように私は自分のアプリケーションのアイコンのNSImageでは表現をロードすることができますか?
質問
私は私のココアアプリケーション用に設定されたカスタムアイコンファイル(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する)