在mac OS上使用swift 4进行拖放
我使用的是swift 4和Xcode 9,我在实现拖放时遇到了问题。我有一个自定义的“目的地”视图来查看投递,在swift 3中,我调用在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方法。 (我的自定义视图位于
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作为字符串