How to programmatically determine native pixel resolution of Retina MacBook Pro screen on OS X?

前端 未结 5 1512
礼貌的吻别
礼貌的吻别 2020-12-18 04:51

Given a CGDirectDisplayID returned from

CGError error = CGGetActiveDisplayList(8, directDisplayIDs, &displayCount);

for the built-in s

5条回答
  •  死守一世寂寞
    2020-12-18 05:41

    If using NSScreen is an option, you could do something like this in OSX 10.7:

    NSRect framePixels = [screen convertRectToBacking:[screen frame]];
    

    where framePixels.size is your display's pixel resolution and screen is a pointer to NSScreen. For example, this code would print the pixel resolution of all active displays to console:

    for (NSScreen* screen in [NSScreen screens])
    {
        NSRect framePixels = [screen convertRectToBacking:[screen frame]];
        NSLog(@"framePixels: (%f, %f)", framePixels.size.width, framePixels.size.height);
    }
    

提交回复
热议问题