我有一个具有画布(NSView)的应用程序,用户可以在其中拖动元素。当鼠标离开该视图的边缘时,它将成为拖动操作。
我想要做的是当鼠标再次进入原始视图时它会取消操作,并会再次在画布内自动开始移动。
我可以弄清楚第二部分我只需要弄清楚如何强制拖放取消。我需要以某种方式从draggingEntered中做到这一点:所以在鼠标被释放之前。
答案 0 :(得分:1)
让画布视图也响应拖动。最初它的所有<NSDraggingDestionation>
协议方法都会返回“不,什么都不做”,但是如果你从画布中开始拖动就会跟踪它,一旦拖动离开并返回你的NSDraggingDestionation方法就会返回,“好的,我们接受,拖动结束,不要打扰动画。”
然后你可以继续本地跟踪。比如,假设您的画布已调用:
- (void)dragImage:(NSImage *)anImage at:(NSPoint)viewLocation offset:(NSSize)initialOffset event:(NSEvent *)event pasteboard:(NSPasteboard *)pboard source:(id)sourceObj slideBack:(BOOL)slideFlag;
然后该方法会将控件返回到画布