使用Xcode以编程方式在Mac OS上更改显示旋转

Nic*_*las 5 macos objective-c quartz-graphics

我正在尝试编写一个小的Objective-C命令行工具来调整给定显示的旋转.

可悲的是,我在Apple的文档中找不到任何引用如何更改轮换(除了获取它)之外的参考.我认为必须使用,CGDisplayModeRef但我不知道如何.任何帮助,将不胜感激!

Nic*_*las 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
Run Code Online (Sandbox Code Playgroud)

不要忘记链接到IOKit.