小编Chr*_*ris的帖子

在Swift中拖放 - 注册拖动类型的问题?

背景

我试图在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)

drag-and-drop swift

7
推荐指数
2
解决办法
7827
查看次数

标签 统计

drag-and-drop ×1

swift ×1