在 mac OS 上使用 swift 4 拖放
Drag and Drop using swift 4 on mac OS
我正在使用 swift 4 和 Xcode 9,但我在执行拖放操作时遇到了问题。我有一个自定义 'destination' 掉落视图,在 swift 3 中我调用
register(forDraggedTypes: Array(NSURLPboardType))
接受包含这些类型的拖动。
我怎样才能在 swift 4 中做这样的事情?
现在我有了这段代码
registerForDraggedTypes([.pdf])
当我在视图中放置 pdf 时,没有任何 NSDraggingDestination 方法调用。
(我的自定义视图位于顶部)
所以我的同事找到了这个问题的解决方案,在 swift 4 中你必须使用 kUTTypes 转换为 String 进行拖放,就像这样:
registerForDraggedTypes([NSPasteboard.PasteboardType(rawValue: kUTTypeFileURL as String), NSPasteboard.PasteboardType(rawValue: kUTTypeItem as String)])
使用此代码,所有 NSDraggingDestination 方法都可以正常工作,您可以在视图中从 Finder 中删除任何文件。
我正在使用 swift 4 和 Xcode 9,但我在执行拖放操作时遇到了问题。我有一个自定义 'destination' 掉落视图,在 swift 3 中我调用
register(forDraggedTypes: Array(NSURLPboardType))
接受包含这些类型的拖动。 我怎样才能在 swift 4 中做这样的事情? 现在我有了这段代码
registerForDraggedTypes([.pdf])
当我在视图中放置 pdf 时,没有任何 NSDraggingDestination 方法调用。 (我的自定义视图位于顶部)
所以我的同事找到了这个问题的解决方案,在 swift 4 中你必须使用 kUTTypes 转换为 String 进行拖放,就像这样:
registerForDraggedTypes([NSPasteboard.PasteboardType(rawValue: kUTTypeFileURL as String), NSPasteboard.PasteboardType(rawValue: kUTTypeItem as String)])
使用此代码,所有 NSDraggingDestination 方法都可以正常工作,您可以在视图中从 Finder 中删除任何文件。