【发布时间】:2014-12-25 05:27:33
【问题描述】:
在 Swift 中,我如何在我的 Mac 应用程序的窗口中构建一个区域,用户可以将文件夹拖放到该区域,并让我的应用程序接收文件夹的路径?
在我看来,原则上这与 Apple 的 CocoaDragAndDrop example 应用程序的概念相似。我试图通过理解源代码来工作,但该应用程序是用 Objective-C 编写的,我没有成功地在我正在构建的应用程序中复制它的功能。
提前谢谢你。
【问题讨论】:
-
您遇到过这个问题吗?如果你这样做了,那么如果你能将你的解决方案发布给其他人(比如我!),那就太好了。
-
@JavaNut13 不!我一直没能找到解决办法。我设法允许用户通过在 Xcode 中将相关的Document Types 添加到我的目标,然后将
func application(sender: NSApplication, openFile theDroppedFilePath: String) { PROCESS YOUR FILES HERE }添加到我的 AppDelegate.swift 来允许用户将文件/文件夹拖放到我的应用程序的停靠图标上。希望这会有所帮助! -
如果我解决了,我想我会在这里发布答案。
-
请注意,在 Cocoa Drag&Drop 示例中,您可以注释掉“registerForDraggedTypes”并且它仍然可以工作...因为它是 NSImageView 的默认功能...因此在 swift 中,如果您使用NSImageView,它至少也适用于图像。我仍在寻找 NSView 上拖放功能的工作示例(Swift 或 Obj C)。我永远无法让 registerForDraggedTypes 工作......