Giả sử tôi muốn viết một ứng dụng Cocoa đơn giản để làm cho tính năng Spaces của Leopard trở nên hữu ích hơn. Tôi muốn cấu hình mỗi không gian có, nói, khác nhauPhát hiện khi không gian thay đổi trong Không gian trong Mac OS X
- màn hình độ phân giải
- bố trí bàn phím
- khối lượng (cho âm thanh)
Vì vậy, có hai phần câu hỏi của tôi:
- Tôi cho rằng có nhiều cách để sửa đổi ba điều này độc lập với Spaces, đúng không? Nếu vậy, làm thế nào?
- Làm cách nào tôi có thể phát hiện trong ứng dụng của mình khi xảy ra thay đổi không gian và khi điều đó xảy ra, hãy xác định không gian nào người dùng vừa chuyển sang? Có phải Leopard gửi một số thông báo được phân phối hay gì đó không?
Cập nhật: Có một số cách API công khai để thực hiện việc này, đánh giá từ tất cả các ứng dụng liên quan đến Spaces trên Mac App Store.
Cảm ơn. Nhưng nếu không có cửa sổ trong không gian thì sao? Trường hợp đó có thể được xử lý thông qua API công cộng không? – Enchilada
Trong ứng dụng của bạn tạo ra một cửa sổ trong suốt và đặt nó tham gia tất cả Spaces, sau đó tìm nó trong dãy cửa sổ. Để đặt cửa sổ ở tất cả các khoảng trống, hãy sử dụng điều này: [transparentWindow setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces] – BendiLow
Khi sử dụng 'kCGWindowWorkspace', tôi nhận thấy rằng ID Space thay đổi sau khi khởi động lại các dấu cách sau dấu đầu tiên (trên Lion). Điều đó làm cho việc lưu trữ ID khá nhiều vô ích ... Có API công cộng khác cho điều này không? (Có thể liên quan đến điều này: http://openradar.appspot.com/9241430) – Mark