gpt4 book ai didi

macos - 在 Mac 上,将文件拖到我的 NSTableVIew?

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:41 28 4
gpt4 key购买 nike

我希望能够将(任何)文件拖到我的基于 View 的 NSTableView,所以在委托(delegate)中我有这样的设置:

class MyViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource, NSDraggingDestination
{
@IBOutlet var tableView: NSTableView! // connected in storyboard.

override func viewDidLoad()
{
super.viewDidLoad()
tableView.registerForDraggedTypes([NSFilenamesPboardType])
// …
}

func draggingEntered(sender: NSDraggingInfo) -> NSDragOperation
{
println("Drag entered.")
return .Copy
}

func prepareForDragOperation(sender: NSDraggingInfo) -> Bool
{
return true
}

func draggingUpdated(sender: NSDraggingInfo) -> NSDragOperation
{
return .Copy
}
// ...
}

但我的程序只是拒绝对拖放使用react。当我将文件从 Finder 拖到它并释放时,文件图标会飞回 Finder。我的代码中是否遗漏了什么?

更新:我添加了这个

func performDragOperation(sender: NSDraggingInfo) -> Bool
{
return true
}

但是还是不行。我应该在我的 View 中而不是委托(delegate)中实现它吗?该文档说“窗口对象或其委托(delegate)可以实现这些方法;”

最佳答案

self 回答:

我偶然发现了 this question ,并意识到在数据源部门也有需要实现的方法;即these .拖放功能现在可以使用了。

关于macos - 在 Mac 上,将文件拖到我的 NSTableVIew?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29873026/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com