首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取mouseDragged事件的开始和结束坐标

问获取mouseDragged事件的开始和结束坐标
EN

Stack Overflow用户
提问于 2014-05-09 07:15:59
回答 1查看 240关注 0票数 0

我正在制作一个应用程序来跟踪用户在屏幕上按下的键和单击的位置,以及他们拖动鼠标的时间和位置。我已经实现了前两个,但我不确定如何继续获取单个鼠标拖动的开始和结束坐标。

这就是我到目前为止所知道的:

代码语言:javascript
复制
dragWatcher = [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask handler:^(NSEvent *event) {
      NSLog(@"----------------------\n");
      NSLog(@"dX: %.2lf dY:%.2lf", [event deltaX], [event deltaY]);
      NSLog(@"----------------------\n");
}];

为什么当我拖动一个窗口(不停)时,会有多条日志线?我本以为只要我没有松开鼠标按钮,它就应该被算作是相同的操作。蒂娅!

编辑:NSLog示例...

代码语言:javascript
复制
2014-05-08 16:12:11.821 Recorder[17504:303] dX: 1.00 dY:0.00
2014-05-08 16:12:11.822 Recorder[17504:303] ----------------------
2014-05-08 16:12:11.838 Recorder[17504:303] ----------------------
2014-05-08 16:12:11.838 Recorder[17504:303] dX: 6.00 dY:-4.00
2014-05-08 16:12:11.838 Recorder[17504:303] ----------------------
2014-05-08 16:12:11.854 Recorder[17504:303] ----------------------
2014-05-08 16:12:11.854 Recorder[17504:303] dX: 3.00 dY:-4.00
2014-05-08 16:12:11.854 Recorder[17504:303] ----------------------
2014-05-08 16:12:11.871 Recorder[17504:303] ----------------------
2014-05-08 16:12:11.871 Recorder[17504:303] dX: 21.00 dY:-15.00
2014-05-08 16:12:11.871 Recorder[17504:303] ----------------------
EN

回答 1

Stack Overflow用户

发布于 2014-05-09 08:02:31

您误解了NSLeftMouseDragged事件是什么。除了按下鼠标左键/主鼠标键之外,它与NSMouseMoved事件完全相似。它不表示从按下鼠标到释放鼠标的整个拖动过程。

应用程序需要在拖动过程中不断更新鼠标位置,这样它们才能做出响应。例如,当您单击按钮时,它会在光标位于按钮内部时高亮显示。如果将光标移出按钮,它将取消高亮显示。如果将其移回,它将再次高亮显示。根据您对NSLeftMouseDragged的解释,在释放按钮并结束拖动之前,应用程序不会接收额外的事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23554168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档