Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在将项目表单NSCollectionView拖动到Finder时获取拖动目标url_Objective C_Macos_Cocoa_Nscollectionview - Fatal编程技术网

Objective c 如何在将项目表单NSCollectionView拖动到Finder时获取拖动目标url

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];

我正在开发一个函数,当我将NSCollectionViewItem拖动到Finder时,将文件复制到Finder,因此我实现了以下委托:

- (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];