2013-06-25 10 views
5

Sto provando a scrivere un piccolo strumento da riga di comando Objective-C che regola la rotazione di un dato display.Cambia automaticamente la rotazione del display su Mac OS usando Xcode

Purtroppo non riesco a trovare alcun riferimento nella documentazione di Apple che indica come modificare la rotazione (oltre a ottenerlo). Penso che debba essere fatto usando CGDisplayModeRef ma non riesco a scoprire come. Qualsiasi aiuto sarebbe apprezzato!

risposta

4

estratto da https://github.com/CdLbB/fb-rotate - sembra che lo IOKit possa fare il lavoro anche se il comportamento mi sembra un po 'strano. In poche parole:

io_service_t service = CGDisplayIOServicePort(myDisplayID); //IOKit Handle (get myDisplayID yourself) 
IOOptionBits options = (0x00000400 | (kIOScaleRotate90) << 16) //Some undocumented hex'ing 
IOServiceRequestProbe(service, options); //Set rotation to display 

Non dimenticare di collegare contro IOKit.

+0

Su OS X 10.10 Ho potuto utilizzare il programma per ruotare lo schermo interno e impostare il display principale sull'altro monitor, ma non è stato possibile ruotare l'altro monitor, anche se era impostato su main. –

+0

È possibile ruotare su angoli diversi da 0, 90, 180, 270? – Harry

+1

@Harry Se guardi una tela (per disegnare) puoi ruotarla liberamente ma il display stesso è limitato a questi quattro angoli definiti. Le costanti sono kIOScaleRotate0, kIOScaleRotate90, kIOScaleRotate180 e kIOScaleRotate270. – Andreas

Problemi correlati