È possibile utilizzare NSScreen
per ottenere le dimensioni del/i display/i allegato/i in pixel, ma questo non ti darà la dimensione fisica/PPI del display e infatti non credo ci siano API che sarà in grado di farlo in modo affidabile.
Si può chiedere una finestra per la sua risoluzione in questo modo:
NSDictionary* deviceDescription = [window deviceDescription];
NSSize resolution = [[deviceDescription objectForKey:NSDeviceResolution] sizeValue];
Questo vi attualmente vi darà un NSSize
di {72,72}
per tutti gli schermi, non importa quale sia la loro effettiva PPI. L'unica cosa che modifica questo valore è la modifica del fattore di scala nell'utilità Debug di quarzo o se Apple attiva l'interfaccia utente indipendente dalla risoluzione. È possibile ottenere il fattore di scala corrente chiamando:
[[NSScreen mainScreen] userSpaceScaleFactor];
Se davvero necessario conoscere l'esatta risoluzione (e sarei interessato a sapere il motivo per cui si pensa di fare), è possibile creare una routine di calibrazione dello schermo e hanno l'utente misura una linea sullo schermo con un righello fisico reale. Greggio, sì, ma funzionerà.
fonte
2010-04-12 12:58:06
Stai attento a questo. Le informazioni DPI non sono generalmente affidabili. I driver possono sbagliare e monitorare le informazioni EDID possono mentire, a volte grossolanamente. Assicurati che ci sia un override. – bobince