2013-06-25 25 views
5

Tôi đang cố gắng viết một công cụ dòng lệnh Objective-C nhỏ điều chỉnh vòng quay của một màn hình cụ thể.Lập trình Thay đổi Xoay Hiển thị trên Mac OS bằng cách sử dụng Xcode

Đáng buồn thay, tôi không thể tìm thấy bất kỳ tham chiếu nào trong tài liệu của Apple cho biết cách thay đổi vòng quay (ngoài việc nhận được nó). Tôi nghĩ rằng nó đã được thực hiện với việc sử dụng CGDisplayModeRef nhưng tôi không thể tìm hiểu làm thế nào. Bất kỳ trợ giúp sẽ được đánh giá cao!

Trả lời

4

Trích xuất từ ​​https://github.com/CdLbB/fb-rotate - có vẻ như IOKit có thể thực hiện công việc mặc dù hành vi có vẻ hơi lạ với tôi. Tóm lại:

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 

Đừng quên liên kết với IOKit.

+0

Trên OS X 10.10 Tôi có thể sử dụng chương trình để xoay màn hình nội bộ và đặt màn hình chính sang màn hình khác, nhưng không thể xoay màn hình khác, ngay cả khi nó được đặt thành chính. –

+0

Có thể xoay sang các góc khác 0, 90, 180, 270 không? – Harry

+1

@Harry Nếu bạn nhìn vào một khung hình (để vẽ), bạn có thể xoay tự do nhưng bản thân màn hình bị giới hạn ở bốn góc được xác định này. Hằng số là kIOScaleRotate0, kIOScaleRotate90, kIOScaleRotate180 và kIOScaleRotate270. – Andreas

Các vấn đề liên quan