【发布时间】:2009-10-06 19:18:25
【问题描述】:
我刚刚注意到,并非 Dock 中的所有图标都允许您将文件拖到其中。例如,我可以将文件拖到 textedit 但不能拖到 finder。究竟是什么决定了应用程序是否支持这样的操作?只是好奇。
【问题讨论】:
我刚刚注意到,并非 Dock 中的所有图标都允许您将文件拖到其中。例如,我可以将文件拖到 textedit 但不能拖到 finder。究竟是什么决定了应用程序是否支持这样的操作?只是好奇。
【问题讨论】:
我相信这是应用程序的Info.plist 中设置的支持文件类型列表。如果您将支持的文件类型拖到应用程序上,它将允许放置。否则不会。
【讨论】:
应用程序必须注册自己才能接受某种数据的拖放。
在视图可以接收拖动操作之前,您需要通过调用它的 registerForDraggedTypes: 来注册它可以接受的数据类型,如下所示:
[self registerForDraggedTypes:[NSArray arrayWithObjects: NSColorPboardType, NSFilenamesPboardType, nil]];
完整的细节在这里:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/DragandDrop/DragandDrop.pdf
【讨论】: