2013-06-25 2 views
5

Я пытаюсь написать небольшой инструмент командной строки Objective-C, который регулирует вращение данного дисплея.Программно изменить поворот дисплея на Mac OS с помощью Xcode

К сожалению, я не могу найти ссылки на документацию Apple, которая рассказывает, как изменить поворот (помимо получения). Я думаю, что это нужно сделать с использованием CGDisplayModeRef, но я не могу узнать, как это сделать. Любая помощь будет оценена!

ответ

4

Извлечено из https://github.com/CdLbB/fb-rotate - кажется, IOKit может выполнить эту работу, хотя поведение кажется немного странным для меня. В двух словах:

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 

Не забудьте связать против IOKit.

+0

В OS X 10.10 Я смог использовать программу для поворота внутреннего дисплея и для установки основного дисплея на другой монитор, но не мог повернуть другой монитор, даже если он был установлен на главный. –

+0

Возможно ли вращение с углами, отличными от 0, 90, 180, 270? – Harry

+1

@Harry Если вы посмотрите на холст (для рисования), вы можете свободно вращать его, но сам экран ограничен этими четырьмя определенными углами. Константами являются kIOScaleRotate0, kIOScaleRotate90, kIOScaleRotate180 и kIOScaleRotate270. – Andreas

Смежные вопросы