12

I have a problem with CATextLayer cleaning. and with iOS the solution is:

textLayer.contentsScale = UIScreen.mainScreen.scale

But I can't found "scale" property on cocoa NSScreen

Note: Answer with Object-C or Swift are OK.

Huynh Inc
  • 2,010
  • 1
  • 25
  • 42

3 Answers3

14

[[NSScreen mainScreen] backingScaleFactor] will give you the scaling factor for main display

Stefan Arentz
  • 34,311
  • 8
  • 67
  • 88
sac
  • 890
  • 6
  • 19
  • I don't have Macbook retina, so I can't test your answer, please help me test on retina. On Macbook no retina [[NSScreen mainScreen] backingScaleFactor] = 1. – Huynh Inc Jul 08 '15 at 08:29
  • 1
    This API returns 2 if its a retina display – sac Jul 08 '15 at 09:42
  • You can put any Mac into HiDPI mode for testing: http://cocoamanifest.net/articles/2013/01/turn-on-hidpi-retina-mode-on-an-ordinary-mac.html – Frank R. Jul 09 '15 at 09:06
6

I'm not sure it's the same as on iOS but NSScreen has backingScaleFactor, which might do the trick.

Frank R.
  • 2,328
  • 1
  • 24
  • 44
  • I don't have Macbook retina, so I can't test your answer, please help me test on retina. On Macbook no retina [[NSScreen mainScreen] backingScaleFactor] = 1. – Huynh Inc Jul 08 '15 at 08:28
2

swift 4.2:

(NSScreen.main?.backingScaleFactor)!
roberto
  • 577
  • 6
  • 5