2012-03-22 1 views
1

J'ai un NSScrollView avec un NSView défini en tant que vue de document. J'essaye d'obtenir l'événement mousedown dans le NSScrollView mais le NSView continue à l'intercepter. Y a-t-il un moyen d'empêcher cela?Désactiver NSView mousedown

Il existe également un moyen de l'arrêter dans une zone de la vue, un peu comme le fait NSTrackingArea pour mouseentered.

Merci à l'avance,

Ben

Répondre

1

Pouvez-vous passer outre -mouseDown: dans votre sous-vue juste avant l'événement pour le prochain intervenant? Vous pouvez également cela en remplaçant le -hitTest: de la vue précédente pour retourner elle-même (lorsque vous ne voulez pas que les sous-vues reçoivent des événements) ou une sous-vue (dans tous les autres cas où une sous-vue contient l'emplacement de l'événement).

En ce qui concerne votre dernière question, vous pouvez également le faire avec -hitTest:. Renvoyez simplement self si l'événement se produit dans la "zone d'exclusion" d'une sous-vue.

Si vous empruntez cette route, assurez-vous de faire attention au système de coordonnées utilisé à tout moment et convertissez-les au besoin.

+0

Parfait - merci – BenJacob

+0

Bien sûr, heureux de vous aider. –

+0

Désolé de revenir à ceci mais est-il possible d'obtenir le comportement normal si l'emplacement de souris est en dehors des limites que vous spécifiez? c'est-à-dire renvoyer quelle vue serait normalement renvoyée? – BenJacob

Questions connexes