3

我正在使用 swift 4 和 Xcode 9,但在实现拖放时遇到问题。我有一个自定义的“目的地”视图用于放置,我在 swift 3 中调用

register(forDraggedTypes: Array(NSURLPboardType))

接受包含这些类型的拖动。我怎样才能在 swift 4 中做这样的事情?现在我有这个代码

registerForDraggedTypes([.pdf])

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

4

1 回答 1

6

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

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

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

于 2017-06-14T12:20:18.900 回答