我试图在Swift中做一些简单的拖放,类似于Apple for Cocoa Drag and Drop的示例代码.在我遇到错误之前我没有走远.
我已经创建了一个swift类dropView,底部带有代码.对于类型的self.registered看起来像是工作,因为我得到了很长的图像类型列表或较短的列表.
当我设置数组以将拖动类型注册到TIF和jpeg类型时,我没有得到draggingEntered或draggingUpdated的响应.看来我错过了一些简单的东西?我将自定义视图设置为dropView类.
另外,当我将数组设置为NSImage.imagePasteBoardTypes()时,拖动文件(至少对于TIF和jpeg)时会出现大量错误.请参阅帖子底部的**.
为什么不调用draggingEntered或draggingUpdated?
其他问题:
我正确注册拖动类型吗?阵列格式是否正确?NSDraggingDestination属性位于文件顶部的正确位置吗?
import Cocoa
class dropView: NSView, NSDraggingDestination {
init(frame: NSRect) {
super.init(frame: frame)
//let theArray = [NSImage.imagePasteboardTypes()]
let theArray = ["NSTypedFilenamesPboardType:jpg",
"NSTypedFilenamesPboardType:JPG",
"NSTypedFilenamesPboardType:jpeg",
"NSTypedFilenamesPboardType:JPEG",
"NSTypedFilenamesPboardType:jpe",
"NSTypedFilenamesPboardType:TIF"]
registerForDraggedTypes(theArray)
println("INIT and REGISTER")
println(self.registeredDraggedTypes)
}
override func drawRect(dirtyRect: NSRect) {
super.drawRect(dirtyRect)
// Drawing code here.
}
override func draggingEntered(sender: NSDraggingInfo!) -> NSDragOperation {
println("Dragging Entered")
return NSDragOperation.Copy
}
override func draggingUpdated(sender: NSDraggingInfo!) -> NSDragOperation {
println("UPDATED")
return NSDragOperation.Copy …Run Code Online (Sandbox Code Playgroud)