【问题标题】:Drag and drop does not work with NSStatusItem from OSX Dock's Download Stack拖放不适用于 OSX Dock 下载堆栈中的 NSStatusItem
【发布时间】:2015-04-30 07:33:25
【问题描述】:

我正在尝试从 OSX Dock 的 Download Stack 获取文件。当我拖动文件draggingEntereddraggingExited 时被调用。但是performDragOperationconcludeDragOperation 都没有被调用。

当我从查找器中删除文件时,它工作正常。

我为我的拖动视图注册了如下类型

[_dragView registerForDraggedTypes:[NSArray arrayWithObjects: NSFilenamesPboardType, NSTIFFPboardType, NSStringPboardType, @"local-file-url", @"public.file-url", nil]];

更新


如果该视图在某个窗口中,它确实接受来自Download Stack 的文件。但是当我将该视图设置为NSStatusItem 时,它永远不会调用performDragOperation

【问题讨论】:

  • 你实现NSDraggingDestination的其他方法了吗?
  • @AminNegm-Awad 是的,我有,当我删除文件表单查找器时它工作得非常好。
  • 啊,只有从下载栈拖拽不行?
  • 是的,它在下载堆栈中不起作用。

标签: objective-c macos drag-and-drop osx-yosemite dock


【解决方案1】:

在官方doc中是这样说的:

要调用此方法,之前的 prepareForDragOperation: 消息必须返回 YES

你的代码是这样的吗?

【讨论】:

  • prepareForDragOperation 已实现并始终返回YES。阅读有问题的 cmets。在“下载堆栈”的情况下它不起作用。从 finder 开始,它工作正常。
猜你喜欢
  • 1970-01-01
  • 2011-08-05
  • 2015-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 2012-03-01
相关资源
最近更新 更多