我正在实施从Finder拖放到NSTableView中。 它工作正常,除了我不能(总是)访问引用的文件。 (测试)验证方法如下:
-(NSDragOperation)tableView:(NSTableView *)tableView validateDrop:(id<NSDraggingInfo>)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)dropOperation {
NSArray *newURLs = [info.draggingPasteboard readObjectsForClasses:[NSArray arrayWithObject:[NSURL class]]
options:@{NSPasteboardURLReadingFileURLsOnlyKey:@YES}];
for (NSURL *url in newURLs) {
if (![url startAccessingSecurityScopedResource])
NSLog(@"failed");
[url stopAccessingSecurityScopedResource];
}
}
这会针对收到的网址failed
进行记录。
我从Finder收到(文件参考)网址就好了(他们path
正是我所期望的。)
拖拽NSURL对象的documentation状态应该有效,所以我对此不起作用感到有些惊讶。
将网址从Finder拖到我的应用的正确方法是什么?