Я создал приложение с NSTableView, представляющим серию файлов.Из этого я хочу иметь возможность перетаскивать строку (то есть имя файла) из моего NSTableView в Finder, и файл будет создан в этой папке.Однако я не могу понять, что мне нужно изменить содержимое исходного файла, прежде чем он будет скопирован в Finder.
Я добавил следующую строку, чтобы я мог перетащить за пределы моегоNSTableView:
[self.tableView setDraggingSourceOperationMask:NSDragOperationCopy forLocal:NO];
И я могу получить его, чтобы скопировать фактический файл, при условии, что я добавляю текущее местоположение файлов в монтажный картон, используя:
- (BOOL)tableView:(NSTableView *)aTableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
[pboard declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType] owner:nil];
NSMutableArray* dragfiles = [[NSMutableArray alloc] init];
NSString* file = [self.files objectAtIndex:row];
NSString* filepath = [[[self.pathControl URL] path] stringByAppendingPathComponent:file];
[dragfiles addObject:filepath];
[pboard setPropertyList:dragfiles forType: NSFilenamesPboardType];
[dragfiles release];
}
Но, поскольку я хочуизменить содержимое файла, я не хочу помещать пути к файлу на монтажном столе.Я пытался использовать NSFileWrapper, но Finder, похоже, не принимает это как действительный формат.
Я проверил Google и нашел несколько предложений, которые вы можете создать временный файл и использовать этот путь к файлу.Но это выглядит ужасно.
Можно ли отправить данные в Finder?Есть ли способ решить эту проблему?