macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

iconForFile:

INDEX>AppKit>NSWorkspace

パスで指定したファイルのアイコンを返します

Objective-C

- (NSImage *)iconForFile:(NSString *)fullPath

Swift

func iconForFile(_ fullPath: String) -> NSImage
パスで指定したファイルのアイコンを返します
-(NSImage *)iconForFile:(NSString *)fullPath:

解説

パスで指定したファイルのアイコンを返します。

返り値

( NSImage * )

イコン画

引数

( NSString * )fullPath

フルパス

フレームワーク

ApplicationKit

クラス

NSWorkspace

使用可能

10.0

参照

- getInfoForFile:application:type:
- iconForFileType:
- iconForFile

更新時のバージョン

OS X 10.10.3
Swift1.2


例文

NSWorkspace* workspace = [NSWorkspace sharedWorkspace];
    NSImage* image = 
        [workspace iconForFile:@"/Applications/Mail.app"];
    NSPoint point = { 0, 0 };

    [image compositeToPoint:NSMakePoint(0,0) operation:NSCompositeSourceOver];
///
//ドロップしたファイルのアイコンをこのアプリのアイコンにする

//File's ownerのデリゲートにこのクラスが接続されている
//ターゲット アプリケーション設定 書類のタイプ 役割Editer 拡張子"****" OSタイプ"****"を設定してある
-(BOOL) application : (NSApplication *)theApplication openFile:(NSString *) filename
{
NSImage *iconImage;
if (filename != nil){

iconImage = [[NSWorkspace sharedWorkspace] iconForFile:filename];
[theApplication setApplicationIconImage:iconImage];

[info setStringValue:filename];
return YES;
}else{
[info setStringValue:@"NO"];
return NO;
}
}


Swift

    //NSWorkspace iconForFile
    @IBAction func function030(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!
                
                var theView : NSImageView = NSImageView(frame: NSMakeRect(0.0, 0.0, 100.0, 100.0))
                theView.image = theWorkspace.iconForFile(filepath as String)
                aWindow.contentView.addSubview(theView)
                aWindow.center()//ウインドウをスクリーンの中心に
                aWindow.orderFront(self)//前面に
                aWindow.makeKeyAndOrderFront(self)//表示

                
                }//if result
            }//openPanel.beginWithCompletionHandler
        
            }