在mac OS上使用swift 4进行拖放

时间:2017-06-14 09:36:12

标签: swift macos drag-and-drop nspasteboard swift4

我正在使用swift 4和Xcode 9,我遇到了拖放实现的问题。我有一个自定义的'目标'视图用于drop和swift 3我打电话

register(forDraggedTypes: Array(NSURLPboardType))

接受包含这些类型的drags。 我如何在swift 4中做这样的事情? 现在我有了这段代码

registerForDraggedTypes([.pdf])

当我在视图中删除pdf时,没有一个NSDraggingDestination方法调用。 (我的自定义视图位于顶部)

1 个答案:

答案 0 :(得分:6)

所以我的同事找到了这个问题的解决方案,在swift 4中你必须使用kUTTypes作为String进行拖放,如下所示:

registerForDraggedTypes([NSPasteboard.PasteboardType(rawValue: kUTTypeFileURL as String), NSPasteboard.PasteboardType(rawValue: kUTTypeItem as String)])

使用此代码,所有NSDraggingDestination方法都可以正常工作,您可以从视图中的finder中删除任何文件。