Quando si lavora in modo programmatico con le modalità di visualizzazione in OS X (documentation), ho trovato che lo CGDisplayCopyAllDisplayModes
lascia fuori l'opzione più a destra che viene presentata in Preferenze di Sistema.CGDisplayCopyAllDisplayModes esce da una modalità valida
Un simple utility che stampa le dimensioni della modalità di visualizzazione corrente e tutte le modalità disponibili con display di dimensioni uscite questa
current size: 1920x1200
available sizes:
2880x1800
1440x900
2560x1600
2048x1280
1024x768
800x600
640x480
1680x1050
1280x800
1920x1200
è un'opzione valida
Tutte le altre opzioni che Preferenze di Sistema fornisce rappresentato nella lista. Qualcuno ha qualche idea del perché 1920x1200
potrebbe non essere incluso? Ho provato a cambiare ad un altro dei valori predefiniti in prefs di sistema, ma non ha causato 1920x1200
da includere.
Edit (la risposta accettata è molto meglio di questi imbrogli, ma sto lasciando queste informazioni solo nel caso)
Le modalità di visualizzazione "in scala" si possono trovare facendo riferimento a un privato API.
È possibile creare un file di intestazione che rende disponibili i metodi privati: vedere this gist che ho preso in prestito da this project.
Poi si può vedere tutte le modalità, comprese quelle in scala come questo
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")
}