2016-02-17 29 views
5

Trong dự án OSX của tôi, tôi muốn:NSWindow lập trình mở trong một máy tính để bàn (Space)

  • xác định các máy tính để bàn (một trong những lộ Spaces), nơi một NSWindow cư trú;

  • mở NSWindow trong không gian xác định, không chỉ trên không gian hiện tại.

Có cách nào để thực hiện các tác vụ đơn giản này không?

Khám phá tài liệu (NSWindowController, NSWindow, NSScreen) Tôi không thể tìm thấy bất kỳ điều gì liên quan đến Quản lý nhiều màn hình.

Cảm ơn trước!

Trả lời

4

Bạn sẽ nghĩ rằng sẽ có một số API để làm việc với Spaces, nhưng thực sự không có. Bạn có thể sử dụng CGWindowListCopyWindowInfo để xác định không gian nào cửa sổ cụ thể đang bật, nhưng không có cách nào dễ dàng để mở một cửa sổ cụ thể trên một không gian cụ thể.

riêng API để di chuyển các cửa sổ giữa các khoảng trắng, tất nhiên. Cho dù bạn muốn sử dụng điều này trong ứng dụng của bạn phụ thuộc vào nhu cầu của bạn - bạn không thể sử dụng nó trên một ứng dụng Mac App Store, rõ ràng.

Tìm thấy một bản sao-of-a-sao của tiêu đề ngược lại chế tôi đang tìm kiếm: https://gist.github.com/rjw57/5495406

+1

Cảm ơn bạn Mark. Tôi liên lạc với Apple DTS và họ nói với tôi: Các kỹ sư của chúng tôi đã xem xét yêu cầu của bạn và đã kết luận rằng không có cách nào được hỗ trợ để đạt được chức năng mong muốn cho các cấu hình hệ thống hiện đang giao hàng. :( –

+0

Vâng, họ thực sự cần phải bước lên trên tài liệu/hỗ trợ CoreGraphicsServices.Tôi chắc chắn sẽ nói với họ rằng tại WWDC tiếp theo. –

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