2010-10-14 85 views
-1

我有一個使用Dashcode編寫的OSX小部件。如何在Dashcode小部件中捕獲鼠標拖動事件?

當前任何鼠標拖動事件都會導致整個小部件在桌面上移動。

我希望能夠在該窗口小部件的畫布上單擊並拖動,但我似乎無法阻止OSX儀表板移動整個窗口小部件。

我已經在捕捉鼠標動作很開心,但點擊/拖動組合正在擊敗我。

+0

你有沒有解決這個問題?我一直在看它,無法找到任何拖放到小部件的方式,我也找不到任何示例或實例。我從閱讀了解桌面上如何實現一個小部件的感覺是,這是不可能的(除非你已經解決了它) – PurplePilot 2010-10-21 12:22:20

+0

不,現在還沒有想法:( – Alnitak 2010-10-21 12:47:02

回答

1

我明顯地在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