2011-01-25 6 views
4

NSButtonの画像をからに(プログラムで)に設定するにはどうすればよいですか?ボタン画像をFinderアイコンに設定する

私は(マック のObjective-C/Cocoaのでこれをやろうとしている

任意の助けいただければ幸いです!

+0

私はシステムからそれを得ることができますアイコンを含む多くのポイントはありません。 –

答えて

5

代替ソリューション:

NSWorkspace *wksp = [NSWorkspace sharedWorkspace]; 
NSImage *image = [wksp iconForFileType:NSFileTypeForHFSTypeCode(kFinderIcon)]; 
[image setSize:(NSSize){ 128.0f, 128.0f }]; 
[button setImage:image]; 

あなたはkFinderIconについて知っているコンパイラのために<CoreServices/CoreServices.h>を含める必要があります。

+0

あなたのものはWevahのものと非常によく似ています。速度や何かの違いはありますか? –

+0

@magikseb:おそらく; Wevahのコードは、Finderへの正確なパスを調べなければならない場合(そして私のコードがそうでない場合)、より高価になる可能性があります。私はそれがたくさん追加されるのではないかと疑っていますが、両方のアプローチに時間を取って、それぞれ1000回何かを実行し、どちらが速いのかを自分自身で見てください。 –

8
NSWorkspace *workspace = [NSWorkspace sharedWorkspace]; 
NSImage *finderIcon = [workspace iconForFile:[workspace absolutePathForAppBundleWithIdentifier:@"com.apple.Finder"]]; 
[finderIcon setSize:NSMakeSize(128.0, 128.0)]; 
[yourButton setImage:finderIcon]; 
+0

それはうまくいくはずですが、いくつかのエラーと警告が表示されます...エラー:予期した '、'または ';' 'NSImage'の前に エラー: 'finderIcon'は宣言されていません(この関数で最初に使用) 警告:未使用の変数 'workspace' –

+0

ああ!最初の行の後にセミコロンがありませんでした!今すぐ動作します。 –

+0

ただしアイコンは非常に小さいです。私は128x128だったNSApplicationアイコン(立っている)を持っていた。 Finderアイコンをもっと大きくすることができますか? –

関連する問題