是啥使得可以在 Mac 上拖动打开文件?
Posted
技术标签:
【中文标题】是啥使得可以在 Mac 上拖动打开文件?【英文标题】:What makes it possible to drag-open files on a Mac?是什么使得可以在 Mac 上拖动打开文件? 【发布时间】:2009-10-06 19:18:25 【问题描述】:我刚刚注意到,并非 Dock 中的所有图标都允许您将文件拖到其中。例如,我可以将文件拖到 textedit 但不能拖到 finder。究竟是什么决定了应用程序是否支持这样的操作?只是好奇。
【问题讨论】:
【参考方案1】:我相信这是应用程序的Info.plist
中设置的支持文件类型列表。如果您将支持的文件类型拖到应用程序上,它将允许放置。否则不会。
【讨论】:
我不认为 Info.plist 与此有关。看我的回答。 事实上,确实如此。您的答案涉及接受拖放到视图中的对象,而不是将文件拖放到应用程序图标上。 所有程序都有 Info.plist 吗?例如,我正在考虑多平台 Java 程序。虽然我不知道他们是否支持这个功能。但如果他们这样做,是否意味着他们也有 info.plist? Iirc,老式的 Java-Cocoa 桥应用程序有一个(但您可能想自己验证)。不确定常规的 Java 应用程序。我认为他们确实必须做一些特定于平台的事情来注册处理的文档类型,但我没有做过 Java 桌面应用程序开发,所以我不知道具体细节。【参考方案2】:应用程序必须注册自己才能接受某种数据的拖放。
在视图可以接收拖动操作之前,您需要通过调用它的 registerForDraggedTypes: 来注册它可以接受的数据类型,如下所示:
[self registerForDraggedTypes:[NSArray arrayWithObjects: NSColorPboardType, NSFilenamesPboardType, nil]];
完整的细节在这里:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/DragandDrop/DragandDrop.pdf
【讨论】:
他不是在谈论视图,他是在谈论将一个拖到 Dock 或桌面上的图标上。 此外,该文档没有解释未启动的应用程序如何能够接受或拒绝拖放操作。以上是关于是啥使得可以在 Mac 上拖动打开文件?的主要内容,如果未能解决你的问题,请参考以下文章