2012-06-10 9 views
5

Tôi cần theo dõi bất kỳ thay đổi độ phân giải màn hình nào trong ứng dụng của mình, đi kèm với ứng dụng của tôi ở phía trước hay không.Có cách nào để biết liệu một ứng dụng khác có thay đổi độ phân giải màn hình trong Cocoa không?

tôi đã tìm kiếm rất nhiều trên internet ngày hôm qua và đã thử tất cả các tùy chọn này:

applicationDidChangeScreenParameters; 
CGDisplayRegisterReconfigurationCallback; 
NSApplicationDidChangeScreenParametersNotification; 

tôi nhận được thông báo khi tôi thay đổi độ phân giải bằng tay hoặc cắm/rút phích cắm của một màn hình mới.

Nhưng tôi không nhận được thông báo khi các ứng dụng khác thay đổi thông số màn hình (hầu hết các trò chơi được thực hiện trước năm 2011).

Có cách nào để biết liệu Mọi ứng dụng mac có thay đổi độ phân giải màn hình không? Ngay cả khi ứng dụng của tôi ở chế độ nền? Mọi thông báo? Hy vọng rằng không có API trợ năng ...?

Thank you very much


EDIT (tháng 9)

này câu trả lời Events when dock is showing or hiding giúp tôi một chút. Vì tôi nhận được thông báo khi một ứng dụng khác vào/thoát chế độ toàn màn hình, nhưng không phải khi nó thay đổi độ phân giải mà không thay đổi trạng thái toàn màn hình =/Và nó dựa trên các API Carbon không được chấp nhận trên 10.8 ...

Nó không chính xác Tôi muốn nhưng hoạt động trong hầu hết các trường hợp ... Có cách nào khác để đạt được trên ca cao không? Bất kỳ thông báo toàn cầu nào về điều này?

+0

Bạn đang làm điều này để làm gì? Nếu người dùng khởi chạy trò chơi toàn màn hình, ứng dụng của bạn có lẽ không nên làm gì để phản hồi điều này, vì người dùng sẽ không tương tác đồ họa với ứng dụng của bạn trong suốt thời gian của trò chơi và độ phân giải màn hình sẽ được khôi phục khi trò chơi thoát. – user57368

+1

Đây là ứng dụng của tôi: http://joystickmapper.com/ Nó chạy trên nền và tôi cần phải biết nếu có bất cứ điều gì thay đổi độ phân giải màn hình để khắc phục sự cố xảy ra trong một vài trò chơi khi sử dụng độ phân giải khác với máy tính để bàn. – Rodrigo

Trả lời

1

Bạn có thể đã nhìn trang này:

https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/QuartzDisplayServicesConceptual/Articles/Notification.html%23//apple_ref/doc/uid/TP40004235-SW1

Cũng có vẻ như bạn cần phải giải thích cho thông báo từ các ứng dụng khác do đó sử dụng NSDistributedNotificationCenter thay vì chỉ NSNotificationCenter.

+0

Vâng, tôi đọc nó. Có lẽ tôi đã hiểu sai điều gì đó. Tôi sẽ kiểm tra lại chỉ để chắc chắn. – Rodrigo

+0

Bạn đã định giá như thế nào? Nó có vẻ lạ rằng hệ thống không cung cấp các thông báo này vì vậy tôi tò mò nếu bạn có nó để làm việc! – markjs

+0

Vì một số lý do, NSDistributedNotificationCenter không hoạt động đối với tôi. khi sử dụng NSNotificationCenter, tôi nhận được thông báo. tuy nhiên, khi một số ứng dụng tạm thời thay đổi độ phân giải màn hình (và quay lại độ phân giải trước khi thoát), ứng dụng của tôi không nhận được bất kỳ thông báo nào. Không chắc chắn nếu đây là một lỗi hoặc một tính năng. – Rodrigo