Objective c 如何在将项目表单NSCollectionView拖动到Finder时获取拖动目标url
我正在开发一个函数,当我将NSCollectionViewItem拖动到Finder时,将文件复制到Finder,因此我实现了以下委托:Objective c 如何在将项目表单NSCollectionView拖动到Finder时获取拖动目标url,objective-c,macos,cocoa,nscollectionview,Objective C,Macos,Cocoa,Nscollectionview,我正在开发一个函数,当我将NSCollectionViewItem拖动到Finder时,将文件复制到Finder,因此我实现了以下委托: - (BOOL)collectionView:(NSCollectionView *)cv writeItemsAtIndexes:(NSIndexSet *)indexes toPasteboard:(NSPasteboard *)pasteboard { NSMutableArray *urls = [NSMutableArray array];
- (BOOL)collectionView:(NSCollectionView *)cv writeItemsAtIndexes:(NSIndexSet *)indexes toPasteboard:(NSPasteboard *)pasteboard
{
NSMutableArray *urls = [NSMutableArray array];
[indexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop)
{
NSDictionary *dictionary = [[cv content] objectAtIndex:idx];
[urls addObject:[dictionary objectForKey:KEY_URL]];
}];
if ([urls count] > 0)
{
[pasteboard clearContents];
BOOL result = [pasteboard writeObjects:urls];
return result;
}
return NO;
}
或者这样:
- (BOOL)collectionView:(NSCollectionView *)cv writeItemsAtIndexes:(NSIndexSet *)indexes toPasteboard:(NSPasteboard *)pasteboard
{
NSMutableArray *urls = [NSMutableArray array];
[indexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop)
{
NSDictionary *dictionary = [[cv content] objectAtIndex:idx];
[urls addObject:[[dictionary objectForKey:KEY_URL] path]];
}];
[pasteboard declareTypes:@[NSFilenamesPboardType] owner:self];
[pasteboard setPropertyList:urls forType:NSFilenamesPboardType];
return YES;
}
他们两个都很好
现在我真的想得到其他函数的拖动目标url。
有人能帮我解决吗?你可以试试:
-(BOOL)collectionView:(NSCollectionView*)cv WriteItemSatiIndex:(NSIndexSet*)粘贴板索引:(NSPasteboard*)粘贴板
{
}
NSMutableArray *urls = [NSMutableArray array];
[indexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop)
{
NSDictionary *dictionary = [[cv content] objectAtIndex:idx];
[urls addObject:[[dictionary objectForKey:KEY_URL] path]];
}];
[pasteboard clearContents];
return [pasteboard writeObjects:urls];