2010-06-24 10 views
3

Comment inverser le système de coordonnées d'un NSWindow? Je sais qu'il a une vue de contenu, mais comment puis-je retourner le système de coordonnées de cette vue spécifique qui est de type NSView?Inverser le système de coordonnées d'un objectif NSWindow-c/cacao

Dans une vue secondaire de la vue de contenu de mon NSWindow, je retourne le système de coordonnées en sous-classant NSView, en plaçant cela dans ma fenêtre, et en implémentant NSView j'implémente la méthode isFlipped pour retourner YES. Aucune idée de comment je pourrais avoir NSWindow faire sa vue de contenu hors de "MyFlippedSubclassedNSView"

Répondre

7

Vous ne pouvez pas modifier le système de coordonnées interne d'une NSWindow. Le plus proche que vous pouvez obtenir est d'avoir une vue inversée en tant que vue du contenu.

Cependant, vous n'avez pas vraiment besoin d'une vue ou d'une fenêtre de contenu inversée. Qu'est-ce que vous essayez réellement d'accomplir en inversant le système de coordonnées?

Aucune idée comment je pourrais avoir NSWindow faire est afficher le contenu de « MyFlippedSubclassedNSView »

faire. Créez une instance MyFlippedSubclassedNSView et définissez-la en tant que vue de contenu.

Encore plus simple à faire dans IB: Sélectionnez la vue de contenu de la fenêtre, appuyez sur ⌘6 (Identité) et définissez la classe de la vue sur MyFlippedSubclassedNSView.

+0

Eh bien, c'est parfait. Je vous remercie! Je ne sais pas pourquoi cela n'était pas évident pour moi. Je n'ai pas besoin d'une vue inversée, mais cela me rendra la vie beaucoup plus facile. Je vais faire une mise en page dynamique de beaucoup de vues par programmation et la liste se développe naturellement de haut en bas. Comme je suis le suivi de toutes les coordonnées de mes emplacements de vue manuellement, cela rendra mon arithmétique beaucoup plus logique pour moi. – Nektarios

0

On dirait que vous voulez -[NSView setBoundsOrigin:].

+1

Je ne vois pas comment cela va le résoudre; Je peux faire en sorte que mon origine soit en haut à gauche de ma vue au lieu de la partie inférieure gauche, mais si je dessine un bouton à "0, 20, buttonwidth, buttonheight" je vais dessiner 20 pixels au dessus de mon voir à droite ?? Je cherche à avoir cet exemple 0, 20 dessiner 20 pixels en dessous de la partie supérieure gauche de ma vue. – Nektarios

+0

Nektarios: Correct. Changer l'origine n'est pas suffisant. Vous devez également mettre le système de coordonnées à l'échelle dans la direction opposée. –

Questions connexes