如何以编程方式终止NSDraggingSession?

时间:2015-01-03 03:11:48

标签: objective-c macos cocoa appkit

上下文:

  • OS X应用程序在Cocoa / ObjC中实现
  • Xcode 6.1
  • Base SDK:10.0
  • 部署目标:10.8 +

问题:

在我的应用中,我有一个自定义NSView子类,它实现了NSDraggingSource。我使用的是基于NSDraggingSession的新API(不是旧的已弃用的API)。

我的拖动源完全实现,没问题。

我已经在实施:

-[NSDraggingSource draggingSession:movedToPoint:]

我想在此方法中另外执行一些命中检测,并根据命中测试的结果,可能以编程方式取消当前拖动会话。

那么:以编程方式取消/终止当前NSDraggingSession的最佳方法是什么?(最好来自-[NSDraggingSource draggingSession:movedToPoint:]

也可以在终止时指定NSDragOperation

注意:

  • 我尝试在我的自定义视图上调用-[NSResponder cancelOperation:],认为这可能与拖动会话有关,但这并不起作用。我使用 无法识别的选择器 获得例外。

  • 不要需要帮助进行命中检测。

  • 不要一般需要帮助实施NSDraggingSource

0 个答案:

没有答案