gpt4 book ai didi

objective-c - 如何读取 OSX 的物理屏幕尺寸?

转载 作者:太空狗 更新时间:2023-10-30 03:18:01 24 4
gpt4 key购买 nike

我想知道 Mac OSX 下的物理屏幕尺寸。但是NSDeviceResolution总是报错值(72),所以分辨率/dpi的计算结果是错误的。

在“关于 native ”里面,有一个Mac型号字符串,我的是“15-inch, Early 2011”。所以我想知道是否有一种方法(可能在 obj-c 中)读取该字符串,然后我可以将其用裁剪理屏幕尺寸。

感谢任何帮助。

最佳答案

您可以使用 CGDisplayScreenSize 获取屏幕的物理尺寸(以毫米为单位)。如果您已经知道分辨率,您可以从中计算 DPI。

例如

NSScreen *screen = [NSScreen mainScreen];
NSDictionary *description = [screen deviceDescription];
NSSize displayPixelSize = [[description objectForKey:NSDeviceSize] sizeValue];
CGSize displayPhysicalSize = CGDisplayScreenSize(
[[description objectForKey:@"NSScreenNumber"] unsignedIntValue]);

NSLog(@"DPI is %0.2f",
(displayPixelSize.width / displayPhysicalSize.width) * 25.4f);
// there being 25.4 mm in an inch

@"NSScreenNumber" 看起来很狡猾,但它是从 NSScreen 获取 CGDirectDisplayIDexplicit documented means

关于objective-c - 如何读取 OSX 的物理屏幕尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12589198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com