Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mac OS上使用swift 4进行拖放_Swift_Macos_Drag And Drop_Nspasteboard_Swift4 - Fatal编程技术网

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

在mac OS上使用swift 4进行拖放,swift,macos,drag-and-drop,nspasteboard,swift4,Swift,Macos,Drag And Drop,Nspasteboard,Swift4,我使用的是swift 4和Xcode 9,我在实现拖放时遇到了问题。我有一个自定义的“目的地”视图来查看投递,在swift 3中,我调用 register(forDraggedTypes: Array(NSURLPboardType)) 接受包含这些类型的拖动。 在swift 4中,我如何做类似的事情? 现在我有了这个代码 registerForDraggedTypes([.pdf]) 当我在视图中放置pdf时,没有人调用NSDraggingDestination方法。 (我的自定义视图位于

我使用的是swift 4和Xcode 9,我在实现拖放时遇到了问题。我有一个自定义的“目的地”视图来查看投递,在swift 3中,我调用

register(forDraggedTypes: Array(NSURLPboardType))
接受包含这些类型的拖动。 在swift 4中,我如何做类似的事情? 现在我有了这个代码

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

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

registerForDraggedTypes([NSPasteboard.PasteboardType(rawValue: kUTTypeFileURL as String), NSPasteboard.PasteboardType(rawValue: kUTTypeItem as String)])
使用此代码,所有NSDraggingDestination方法都可以正常工作,您可以从视图中的finder中删除任何文件。

您只需使用
“public.file url”
而不是
kUTTypeFileURL作为字符串
“public.item”而不是
kUTTypeItem作为字符串