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

问题描述:

我有一个使用Dashcode编写的OSX小部件。如何在Dashcode小部件中捕获鼠标拖动事件?

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

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

我已经在捕捉鼠标动作很开心,但点击/拖动组合正在击败我。

+0

你有没有解决这个问题?我一直在看它,无法找到任何拖放到小部件的方式,我也找不到任何示例或实例。我从阅读了解桌面上如何实现一个小部件的感觉是,这是不可能的(除非你已经解决了它) – PurplePilot 2010-10-21 12:22:20

+0

不,现在还没有想法:( – Alnitak 2010-10-21 12:47:02

我明显地在Apple Developer网站上找到了答案here

放一个-apple-dashboard-region:风格上要具有接收拖动事件,而不是拖动小工具,例如div

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

编辑 - 这工作 - 现在我可以捕捉onMouseMove()事件时,当鼠标按钮被按下。

有一件事我不能(还)做的是IE的setCapture(),其中鼠标移动事件继续即使拖超出widget的面积要传递给应用程序的等价物。

+0

这样做吗?任何人都试过它(我会在周末),但该文档说:“指定控制区域意味着如果用户试图从指定区域内拖动小部件,则不会发生拖动,小部件也不会移动。”这仅表示小部件本身不会移动,但不会移动这意味着你实际上可以拖动,尽管我怀疑你可以。 – PurplePilot 2010-11-09 20:49:04