Cocoaフレームワークのロード
framework 'Cocoa'
ペーストボードを取得
OSXではペーストボードと呼んでる臭い
p = NSPasteboard.generalPasteboard;
HTML形式で格納されているデータを取り出すには
data = p.dataForType(NSPasteboardTypeHTML); if( data ) attrString = NSString.alloc.initWithData(data,encoding:NSUTF8StringEncoding); puts attrString; end
リッチテキスト形式で格納されているかも
OSXで動くブラウザによってはHTML形式ではなく、リッチテキスト形式で格納されているものもあった。
HTML形式には簡単?に以下の様にNSAttributeStringを介して変換出来た。
data = p.dataForType(NSPasteboardTypeRTF); if( data ) attrString = NSAttributedString.alloc.initWithRTF(data,documentAttributes:nil) attributeDict = {NSDocumentTypeDocumentAttribute=>NSHTMLTextDocumentType} htmlData = attrString.dataFromRange(NSMakeRange(0, attrString.length()),documentAttributes:attributeDict,error:nil) htmlString = NSString.alloc.initWithData(htmlData,encoding:NSUTF8StringEncoding) puts htmlString end
プレインテキストで格納されている場合
data = p.dataForType(NSStringPboardType); if( data ) puts data end
主なAPI
- NSPasteboard.dataForType
- NSAttributedString.alloc.initWithRTF
- NSAttributedString.dataFromRange
- NSString.alloc.initWithData