2012-10-29 20 views
7

Nella mia app voglio fornire il ridimensionamento del testo in NSTextView con layer supportato come TextEdit di Apple. Io uso analogico di esso è ScalingScrollView. Inoltre ho bisogno di creare alcuni overlay CALayer su self.window.contentView. Tutto va bene fino a quando faccio [self.window.contentView setWantsLayer:YES].CALayer, NSTextView e ridimensionamento

Prima [setWantsLayer:YES]

enter image description here

Dopo [setWantsLayer:YES]

enter image description here

Io non ho tutte le idee su come risolvere questo problema.

risposta

6

Ho cercato la soluzione anche per il problema simile. Alla fine, ho scoperto che le viste supportate da layer devono essere posizionate su pixel interi e non devono essere posizionate su subpixel.

E.g. se si calcola in modo dinamico cornice dello strato-backed vista

NSMakeRect((self.frame.size.width - 350)/2, (self.frame.size.height - 150)/2, 350, 150) 

è possibile riscontrare valori non integrali, così si dovrebbe fare qualcosa di simile

NSMakeRect(floor((self.frame.size.width - 350)/2), floor((self.frame.size.height - 150)/2), 350, 150) 
+1

Dio, sei grande! Sfortunatamente, questa domanda ha perso la sua attualità, ma la tua soluzione è così elegante. Grazie! – Akki