如何以编程方式确定 OS X 上 Retina MacBook Pro 屏幕的原始像素分辨率?

Chr*_*les 7 macos objective-c screen-resolution retina-display

给定一个 CGDirectDisplayID 返回

CGError error = CGGetActiveDisplayList(8, directDisplayIDs, &displayCount);
Run Code Online (Sandbox Code Playgroud)

对于 Retina MacBook Pro 上的内置屏幕,我希望使用

size_t pixelWidth = CGDisplayPixelsWide(directDisplayID);
size_t pixelHeight = CGDisplayPixelsHigh(directDisplayID);
Run Code Online (Sandbox Code Playgroud)

但是,这些调用仅返回当前选定模式的尺寸。如果我改变屏幕分辨率,我会得到不同的值。我希望在 15" rMBP 上获得 2880 x 1800 的分辨率。

如何获取 Retina MacBook Pro 屏幕的原始像素尺寸?

小智 1

我会走另一条路。我不会找出屏幕尺寸,而是获取正在运行程序的设备型号,然后将型号与其屏幕尺寸进行比较。对型号和相应的屏幕尺寸进行编程可能很乏味,但这是我能想到的唯一方法。希望这可以帮助。