【问题标题】:How can I catch mouse drag events in a Dashcode widget?如何在 Dashcode 小部件中捕获鼠标拖动事件?
【发布时间】:2010-10-14 12:17:01
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你解决过这个问题吗?我一直在看它,找不到任何在小部件中拖放的方式,我也找不到它的任何示例或实例。通过阅读有关如何在桌面上实例化小部件的感觉,我的感觉是这是不可能的(除非你已经解决了?)

标签: widget mouseevent dashcode


【解决方案1】:

我显然在 Apple 开发者网站上找到了答案,here

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

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

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

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

【讨论】:

  • 是吗?任何人都尝试过(我会在周末尝试),但文档说“指定控制区域意味着如果用户尝试从指定区域内拖动小部件,则不会发生拖动并且小部件不会移动。”这只是意味着小部件本身不会移动,但并不意味着您可以实际拖动,尽管我怀疑您可以。
猜你喜欢
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2020-10-01
  • 1970-01-01
相关资源
最近更新 更多