Я ищу, чтобы найти значение, которое "About this Mac" показывает (2560 x 1600 на моем 13 "MBP). Я пробовал CGDisplayBounds и NSScreen.main, оба не возвращают эти значения, а вместо этого возвращают то, что используетсявнутренний для рендеринга / измерения.
как по предложению Кенса:
let modes = CGDisplayCopyAllDisplayModes(CGMainDisplayID(), [kCGDisplayShowDuplicateLowResolutionModes: kCFBooleanTrue] as CFDictionary) as! [CGDisplayMode]
for mode in modes {
let flags = String(format:"%02X", mode.ioFlags)
print("\(mode.pixelWidth)x\(mode.pixelHeight) \(mode.width)x\(mode.height) 0x\(flags)")
}
Вывод:
2560x1600 2560x1600 0x2000003 <- This would be the correct one
...
2880x1800 2880x1800 0x03 <- This one is the biggest 1x mode
...
Таким образом, использование наибольшего 1x приведет к неверному результату. Iдобавил ioFlags к выводу. Я полагаю, что это может отсутствующая ссылка; -)
Спасибо, Кен!