Macos 从查找器拖动URL时沙盒未扩展
我正在实现从Finder到NSTableView的拖放操作。 它工作正常,只是我不能(总是)访问引用的文件。 (试验)验证方法如下:Macos 从查找器拖动URL时沙盒未扩展,macos,cocoa,nsurl,appstore-sandbox,Macos,Cocoa,Nsurl,Appstore Sandbox,我正在实现从Finder到NSTableView的拖放操作。 它工作正常,只是我不能(总是)访问引用的文件。 (试验)验证方法如下: -(NSDragOperation)tableView:(NSTableView *)tableView validateDrop:(id<NSDraggingInfo>)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)dropOperati
-(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];
}
}
-(NSDragOperation)tableView:(NSTableView*)tableView validateDrop:(id)建议的信息row:(NSInteger)建议的行dropOperation:(NSTableViewDropOperation)dropOperation{
NSArray*newURLs=[info.draggingPasteboard ReadObjects循环:[NSArray arrayWithObject:[NSURL类]]
选项:@{NSPasteboardURLReadingFileURLsOnlyKey:@YES}];
for(新url中的NSURL*url){
如果(![url startAccessingSecurityScopedResource])
NSLog(@“失败”);
[url stopAccessingSecurityScopedResource];
}
}
这将记录所接收URL的失败
我从查找器接收到(文件引用)URL(它们的路径是我所期望的)
声明说拖动NSURL对象应该可以工作,所以我有点惊讶这不起作用
将URL从Finder拖到我的应用程序的正确方法是什么