CGDisplayCopyAllDisplayModes lässt einen gültigen Modus aus

Wenn programmgesteuert mit Anzeigemodi in OS X gearbeitet wird Dokumentatio), Ich habe festgestellt, dass dasCGDisplayCopyAllDisplayModes lässt die Option ganz rechts aus, die in den Systemeinstellungen angezeigt wird.

A simple utility das die Größe des aktuellen Anzeigemodus ausgibt und alle verfügbaren Anzeigemodusgrößen diese

current size: 1920x1200
available sizes:
2880x1800
1440x900
2560x1600
2048x1280
1024x768
800x600
640x480
1680x1050
1280x800

1920x1200 ist eine gültige Option

Alle anderen Optionen der Systemeinstellungen sind in der Liste aufgeführt. Hat jemand eine Idee warum1920x1200 darf nicht enthalten sein? Ich habe versucht, auf einen anderen der vordefinierten Werte in den Systemeinstellungen zu wechseln, aber es hat nicht zu @ geführ1920x1200 mit dabei sein

Edit (die akzeptierte Antwort ist viel besser als diese Spielereien, aber ich lasse diese Informationen nur für den Fall)

Die "skalierten" Anzeigemodi können durch Verweisen auf eine private API ermittelt werden.

Sie können eine Header-Datei erstellen, die die privaten Methoden zur Verfügung stellt: siehedieser Kern dass ich von @ ausgeliehen hadieses Projek.

Dann sehen Sie alle Modi, auch die skalierten wie diese

print("Private modes:\n")

var numDisplayModes: Int32 = 0
CGSGetNumberOfDisplayModes(mainDisplayID, &numDisplayModes)
print("Num modes \(numDisplayModes)")

for i in 0...(numDisplayModes-1) {
    var pmode: CGPrivDisplayMode = CGPrivDisplayMode()
    CGSGetDisplayModeDescriptionOfLength(mainDisplayID, CInt(i), &pmode, CInt(sizeof(CGPrivDisplayMode)))

    print("\t\(pmode.modeNumber): \(pmode.width)x\(pmode.height) -- \(pmode.density)  \n")
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage