Mar*_*k H 5 cocoa uti nspasteboard nsworkspace
NSFilenamesPboardType在 10.14 上已弃用,建议使用NSPasteboardTypeFileURL. 这给了我文件名
\n\n\n文件:///.file/id=6571367.12885025918
\n
和NSWorkspace无法摆脱尿路感染。
如何感染尿路感染NSPasteboardTypeFileURL?
旧代码:
\n\n- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender\n{\n NSDragOperation sourceDragMask = [sender draggingSourceOperationMask];\n NSDragOperation resultingDragMask = NSDragOperationNone;\n NSPasteboard *pboard = [sender draggingPasteboard];\n\n if ([[pboard types] containsObject:NSFilenamesPboardType]) {\n NSArray <NSString *>*list = [pboard propertyListForType:NSFilenamesPboardType];\n NSString *firstItem = [list objectAtIndexedSubscript:0];\n NSError *error;\n NSString *UTI = [[NSWorkspace sharedWorkspace] typeOfFile:firstItem error:&error];\n if (!error) {\n if ([[NSImage imageTypes] containsObject:UTI]) {\n resultingDragMask = NSDragOperationCopy;\n }\n }\n\n } else if ([[pboard types] containsObject:NSPasteboardTypeTIFF]) {\n resultingDragMask = NSDragOperationCopy;\n }\n\n if (sourceDragMask & NSDragOperationCopy && resultingDragMask & NSDragOperationCopy) {\n return NSDragOperationCopy;\n }\n return NSDragOperationNone;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n和NSPasteboardTypeFileURL错误,指出文件不存在。从粘贴板拖动:
\n\n打印错误描述:\n Error Domain=NSCocoaErrorDomain Code=260 “文件 \xe2\x80\x9cid=6571367.12885025918\xe2\x80\x9d 无法打开\xe2\x80\x99,因为没有这样的\n 文件。” UserInfo={NSURL=文件:/.file/id=6571367.12885025918 --\n file:///Users/xxx/Library/Containers/com.xxx.imageviewfix/Data/,\n NSFilePath=/Users/xxx/Library /Containers/com.xxx.imageviewfix/Data/file:/.file/id=6571367.12885025918,\n NSUnderlyingError=0x600000c70d80 {Error Domain=NSPOSIXErrorDomain\n Code=2“没有这样的文件或目录”}}
\n
我迟到了这个问题,但我发现这有效:
NSArray<Class> *classes = @[[NSURL class]];
NSDictionary *options = @{};
NSArray<NSURL*> *files = [pboard readObjectsForClasses:classes options:options];
for (NSURL *url in files)
{
NSString *str = [url path];
// TODO: do something with str.
}
Run Code Online (Sandbox Code Playgroud)
与其他答案不同,删除多个文件可以使用这种方法。
| 归档时间: |
|
| 查看次数: |
942 次 |
| 最近记录: |