gpt4 book ai didi

objective-c - 如何取消 Mac 应用程序中的拖动

转载 作者:行者123 更新时间:2023-12-03 17:52:43 27 4
gpt4 key购买 nike

我有一个具有 Canvas (NSView)的应用程序,用户可以在其中拖动元素。当鼠标离开该 View 的边缘时,它变成了拖动操作。

我想做的是,当鼠标再次进入原始 View 时,它将取消操作并自动再次在 Canvas 内开始移动。

我可以弄清楚第二部分,我只需要弄清楚如何强制取消拖放即可。我需要以某种方式通过 DraggingEntered: 所以在释放鼠标之前执行此操作。

最佳答案

让你的 Canvas View 也响应拖动。最初都是<NSDraggingDestionation>协议(protocol)方法只会返回“不,什么都不做”,但是如果您从 Canvas 内开始拖动,您会跟踪它,一旦拖动离开并返回,您的 NSDraggingDestionation 方法就会返回,“好吧,我们接受,拖动结束了,不用费心制作动画了。”

然后您就可以在本地继续跟踪。就像,假设你的 Canvas 调用了:

- (void)dragImage:(NSImage *)anImage at:(NSPoint)viewLocation offset:(NSSize)initialOffset event:(NSEvent *)event pasteboard:(NSPasteboard *)pboard source:(id)sourceObj slideBack:(BOOL)slideFlag;

该方法会将控制权返回给您的 Canvas

关于objective-c - 如何取消 Mac 应用程序中的拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21242558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com