2010-10-14 26 views
-1

J'ai un widget OSX écrit en utilisant Dashcode.Comment puis-je attraper les événements de glisser de la souris dans un widget Dashcode?

Actuellement, tout événement de déplacement de la souris entraîne le déplacement complet du widget sur le bureau. Je souhaite être capable de cliquer et de faire glisser dans un canevas sur ce widget, mais je ne semble pas pouvoir empêcher le tableau de bord OSX de déplacer le widget entier à la place.

Je capture déjà la souris mouvements assez heureusement, mais le combo clic/glisser me vaincre.

+0

Avez-vous déjà résolu cela? Je l'ai regardé et ne trouve aucun moyen de faire glisser et déposer dans un widget et je ne peux pas trouver des exemples ou des instances de celui-ci non plus. Mon sentiment en lisant sur la façon dont un widget est instancié sur le bureau est qu'il n'est pas possible (à moins que vous l'ayez résolu?) – PurplePilot

+0

Non, aucune idée encore :( – Alnitak

Répondre

1

J'ai apparemment trouvé la réponse here dans le site Apple Developer.

Mettez un style -apple-dashboard-region: sur le div que vous voulez avoir de recevoir des événements de glisser au lieu de glisser le widget, par exemple:

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

EDIT - cela fonctionne - Je peux maintenant capturer onMouseMove() événements lorsque lorsque le bouton de la souris est pressé. Une chose que je ne peux pas (encore) faire est l'équivalent de IE setCapture(), où les événements de mouvement de la souris continuent à être transmis à l'application même lorsque la traînée s'étend au-delà de la zone du widget.

+0

le fait-il? N'importe qui l'a essayé (je serai le week-end) mais le doc dit "Spécifier une région de contrôle signifie que si un utilisateur tente de faire glisser un widget à l'intérieur d'une région spécifiée, le glisser ne se produira pas et le widget ne bougera pas." Cela signifie simplement que le widget ne bougera pas. signifie que vous pouvez réellement faire glisser, même si je pense que vous le pouvez. – PurplePilot