如何在 Dashcode 小部件中捕获鼠标拖动事件?

发布于 2024-09-28 03:12:16 字数 170 浏览 3 评论 0 原文

我有一个使用 Dashcode 编写的 OSX 小部件。

目前,任何鼠标拖动事件都会导致整个小部件在桌面上移动。

我希望能够在该小部件的画布内单击并拖动,但我似乎无法阻止 OSX 仪表板移动整个小部件。

我已经很高兴地捕捉鼠标移动,但点击/拖动组合却打败了我。

I have an OSX widget written using Dashcode.

Currently any mouse drag event causes the entire widget to move on the desktop.

I wish to be able to click and drag within a canvas on that widget, but I don't seem to be able to prevent the OSX dashboard from moving the entire widget instead.

I'm already capturing mouse movements quite happily, but the click/drag combo is defeating me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏见 2024-10-05 03:12:16

我显然已经找到了答案,此处位于 Apple 开发者网站中。

在您想要接收拖动事件而不是拖动小部件的 div 上放置 -apple-dashboard-region: 样式,例如:

#canvas {
    -apple-dashboard-region: dashboard-region(control rectangle 4px 4px 4px 4px);
}

编辑 - 这有效 - 我可以现在,当按下鼠标按钮时捕获 onMouseMove() 事件。

我(还)不能做的一件事是相当于 IE 的 setCapture(),即使拖动超出了小部件的区域,鼠标移动事件也会继续传递到应用程序。

I've apparently found the answer, here in the Apple Developer site.

Put a -apple-dashboard-region: style on the div that you want to have receive drag events instead of dragging the widget, e.g.:

#canvas {
    -apple-dashboard-region: dashboard-region(control rectangle 4px 4px 4px 4px);
}

EDIT - this works - I can now capture onMouseMove() events when when the mouse button is pressed.

One thing I can't (yet) do is the equivalent of IE's setCapture(), where mouse movement events continue to be passed to the application even when the drag extends beyond the area of the widget.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文