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
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")
}