Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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 从Cocoa应用程序拖放到Finder_Objective C_Cocoa_Drag And Drop_Nscollectionview - Fatal编程技术网

Objective c 从Cocoa应用程序拖放到Finder

Objective c 从Cocoa应用程序拖放到Finder,objective-c,cocoa,drag-and-drop,nscollectionview,Objective C,Cocoa,Drag And Drop,Nscollectionview,我有一个,显示一些文件: 我想要的是 能够选择一个文件 能够将此文件拖放到桌面或其他查找窗口 文件图标由NSImageView显示 提供这种功能的好方法是什么 非常感谢 您需要调用集合视图并传入希望能够拖动的粘贴板类型。在您的情况下,您需要nsurlpoardtype 然后,您只需在NSCollectionView中实现三个与拖动相关的委托方法 您应该从此方法返回YES: 可以使用以下方法为每个项目返回自定义拖动图像: 然后使用以下方法将项目写入粘贴板: 在您的例子中,您将在该方法的实现

我有一个,显示一些文件:

我想要的是

  • 能够选择一个文件
  • 能够将此文件拖放到桌面或其他查找窗口
  • 文件图标由NSImageView显示

    提供这种功能的好方法是什么

    非常感谢

    您需要调用集合视图并传入希望能够拖动的粘贴板类型。在您的情况下,您需要
    nsurlpoardtype

    然后,您只需在
    NSCollectionView
    中实现三个与拖动相关的委托方法

    您应该从此方法返回
    YES

    可以使用以下方法为每个项目返回自定义拖动图像:

    然后使用以下方法将项目写入粘贴板:

    在您的例子中,您将在该方法的实现中将拖动项的URL写入粘贴板


    如果您不了解如何使用粘贴板,您应该阅读指南。

    嘿,我还不能尝试,但这听起来很有希望。非常感谢。你总是给出很有帮助和很好的答案!而且,如果您使用NSCollectionView或其他一些视图,请不要忘记在awakeFromNib或其他init方法中的某处调用[collectionView SetDragingSourceOperationMask:NSDragOperationEvery for Local:NO]。