setIcon:forFile:options:
フルパスで指定したファイルやフォルダにアイコンをセットします
- (BOOL)setIcon:(NSImage *)image forFile:(NSString *)fullPath options:(NSWorkspaceIconCreationOptions)optionsfunc setIcon(_ image: NSImage, forFile fullPath: String, options options: NSWorkspaceIconCreationOptions) -> Bool
解説
フルパスで指定したファイルやフォルダにアイコンをセットします。
返り値
成功したかどうかYES/NO(true/false)
Objective-CBOOL
Bool
引数
任意の画像。透明であってもなくても良い。
自動的に拡大縮小される(NSImage *)image_ image: NSImage
アイコンを変更するファイルのフルパス
ファイルやフォルダは書き込み可能でなければならない
Objective-C(NSString *)fullPathfullPath: String,
画像からアイコンを作る時の仕様。
オプションの値は
ConstantsのNSWorkspaceIconCreationOptions
を見てください。
Cのビット単位のRが使えます。
オプションが0ならすべてのフォーマットが有効(NSWorkspaceIconCreationOptions)optionsoptions: NSWorkspaceIconCreationOptions
フレームワーク
ApplicationKit
クラス
NSWorkspace
使用可能
10.4-
参照
更新時のバージョン
OS X 10.10.3
Swift1.2
例文
#import "SetImage.h" @implementation SetImage - (IBAction)set:(id)sender { //開けるファイル拡張子の配列 NSArray *fileTypes = [ NSArray arrayWithObject : @"TIFF" ]; //OpenPanelを作る NSOpenPanel *opPanel = [ NSOpenPanel openPanel ]; //OpenPanelの結果のボタン番号 int opRet; //OpenPanelでファイル選択 opRet = [ opPanel runModalForDirectory : NSHomeDirectory() //どこのディレクトリを出すか file : @"Pictures" //どのどのファイルを選択しておくか types : fileTypes ];//選べるファイルタイプ if ( opRet == NSOKButton ) { // OPENPanelのボタンがOKなら [image setImage:[[NSWorkspace sharedWorkspace] iconForFile:[ opPanel filename ]]]; [[NSWorkspace sharedWorkspace] setIcon:[[NSWorkspace sharedWorkspace] iconForFile:[ opPanel filename ]] forFile:@"/Applications/Automator.app" options:nil ]; } } @end
//NSWorkspace setIcon:forFile:options: //選択したファイルのアイコンが変更されるので注意すること @IBAction func function032(sender: AnyObject) { var aWindow : NSWindow = NSWindow(contentRect: NSMakeRect(0.0, 0.0, 300, 200), styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask, backing: .Buffered, defer: false , screen: NSScreen.mainScreen()) windowArray.addObject(aWindow) //ウインドウを保持するための配列に追加。アプリ終了時に配列は破棄 //ファイルを選択 var openPanel = NSOpenPanel() openPanel.allowsMultipleSelection = false openPanel.canChooseDirectories = false openPanel.canCreateDirectories = false openPanel.canChooseFiles = true openPanel.beginWithCompletionHandler { (result) -> Void in //オープンパネルでOKを選択したら if result == NSFileHandlingPanelOKButton { //選択したファイルを let theWorkspace : NSWorkspace = NSWorkspace.sharedWorkspace() let theURL : NSURL = openPanel.URL! let filepath : NSString = theURL.path! let newImage : NSImage = NSImage(named: "IconImage")! var theView : NSImageView = NSImageView(frame: NSMakeRect(0.0, 0.0, 100.0, 100.0)) let result : Bool = theWorkspace.setIcon(newImage, forFile: filepath as String, options: NSWorkspaceIconCreationOptions.allZeros) aWindow.contentView.addSubview(theView) aWindow.center()//ウインドウをスクリーンの中心に aWindow.orderFront(self)//前面に aWindow.makeKeyAndOrderFront(self)//表示 }//if result }//openPanel.beginWithCompletionHandler }