2012-09-13 14 views
5

Sto creando a livello di programmazione uno NSWindow e i controlli su di esso.Cacao: origine NSView x nella parte inferiore

Sembra che l'origine (0,0) sia nell'angolo in basso a sinistra. Questo è strano per me (proveniente da altri toolkit della GUI). C'è qualche bandiera in modo che io possa cambiare questo in modo che l'origine sia nell'angolo in alto a sinistra?

risposta

10

Su OS X, l'origine è nell'angolo in basso a sinistra. Questo è vero per le coordinate dello schermo e per le cornici. È possibile sovrascrivere isFlipped: in una sottoclasse NSView e restituire YES per rendere l'angolo superiore sinistro dell'origine di tale vista, ma non penso che ci sia un modo per fare lo stesso per le coordinate dello schermo.

+3

Beh, sì, questo è quello che ho anche cercato fino ad ora. Ma non c'è un modo più semplice? Inoltre, tutti coloro che vogliono farlo devono sempre reinventare la classe 'NSFlippedView' che è solo una' NSView' con 'isFlipped' che restituisce' YES'? – Albert

+0

Penso che nella maggior parte dei casi la soluzione più semplice sia quella di invertire i calcoli. È fastidioso venire dalla programmazione iOS, ma non è così difficile. – DrummerB

+0

In [Cocoa docs] (http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/CocoaDrawingGuide/Transforms/Transforms.html), si dice: "Se prevedi di disegnare tutto il tuo visualizzare il contenuto utilizzando le coordinate capovolte, ignorando il metodo isFlipped della vista è di gran lunga l'opzione preferita. " – Albert

Problemi correlati