rob*_*bor 9 macos cocoa finder drag-and-drop nspasteboard
我需要从Finder中将所有文件的URL拖放到我的应用程序中.
我有一个运行在10.6上的Cocoa应用程序通过使用新的10.6 NSPasteboard API来处理粘贴板上的多个项目.我正在尝试将此应用程序向后移植到10.5.我如何在10.5上处理这个问题?
如果我执行下面的操作,我只会获得第一个网址:
NSArray *pasteTypes = [NSArray arrayWithObjects: NSURLPboardType, nil];
NSString *bestType = [pboard availableTypeFromArray:pasteTypes];
if (bestType != nil) {
NSURL *url = [NSURL URLFromPasteboard:pboard];
}
Run Code Online (Sandbox Code Playgroud)
Tho*_*ing 10
获取多个文件名很简单:(虽然获取多个URL不是 10.5)
NSFilenamesPboardType performDragOperation:执行以下操作以获取文件路径数组: NSPasteboard* pboard = [sender draggingPasteboard];
NSArray* filenames = [pboard propertyListForType:NSFilenamesPboardType];
Run Code Online (Sandbox Code Playgroud)
该IKImageKit programming topics大纲的方式来做到这一点,像这样(转述):
NSData *data = [pasteboard dataForType:NSFilenamesPboardType];
NSArray *filenames = [NSPropertyListSerialization
propertyListFromData:data
mutabilityOption:kCFPropertyListImmutable
format:nil
errorDescription:&errorDescription];
Run Code Online (Sandbox Code Playgroud)
请参阅此处:图像套件编程指南:支持拖放
| 归档时间: |
|
| 查看次数: |
4716 次 |
| 最近记录: |