NSViewを継承したクラスを作ったとして、
class AcceptDragView: NSView {
required init?(coder: NSCoder) {
super.init(coder: coder)
self.registerForDraggedTypes([NSFilenamesPboardType]);
}
ドラッグの受け付けるタイプを指定する。
override func draggingEntered(sender:NSDraggingInfo)->NSDragOperation{
return NSDragOperation.Generic;
// return NSDragOperation.Copy; //マウスポインタがかわる(+の緑アイコンがつく)
// return NSDragOperation.Link;
}
ドラッグされてきた場合の動きを調整。
returnに合わせて、マウスポインタの見せ方を変えることが可能
override func performDragOperation(sender:NSDraggingInfo)->Bool{
var pboard:NSPasteboard! = sender.draggingPasteboard()
if pboard != nil {
pboard = sender.draggingPasteboard()
if contains(pboard.types as [NSString],NSFilenamesPboardType) {
var files:[String] = pboard.propertyListForType(NSFilenamesPboardType) as [String]
println(files)
}
return true
}
return false
}
filesにそのファイルパスが格納されています。
(複数のファイルがドラッグされてくることも考えられるので、配列になっています