2013-06-25 53 views
5

我正在嘗試編寫一個小的Objective-C命令行工具來調整給定顯示的旋轉。使用Xcode以編程方式更改顯示器在Mac OS上的旋轉

不幸的是,在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

相關問題