2012-06-10 7 views
5

私のアプリが前面に来るかどうかに関わらず、私のアプリの画面解像度の変更を監視する必要があります。他のアプリケーションがCocoaのディスプレイ解像度を変更したかどうかを知る方法はありますか?

私は昨日、インターネット上で多くのことを検索し、これらすべてのオプションを試してみました:

applicationDidChangeScreenParameters; 
CGDisplayRegisterReconfigurationCallback; 
NSApplicationDidChangeScreenParametersNotification; 

私は手動で解像度を変更したり、新しいディスプレイを抜い/接続したとき、私は通知を得ます。

しかし、他のアプリケーションが画面パラメータを変更したときに通知を受け取ることはありません(2011年以前に行われたほとんどのゲーム)。

macアプリケーションが画面解像度を変更するかどうかを知る方法はありますか?私のアプリがバックグラウンドにあっても?通知がありますか?うまくいけばアクセシビリティAPIなし...?

はEDIT(6月9日)


あまりこの回答Events when dock is showing or hiding

をいただき、ありがとうございます私は少しを助けました。他のアプリがフルスクリーンに出入りするときに通知を受けるが、フルスクリーン状態を変更せずに解像度を変更しないときは通知を受けるからである.../10.8で廃止予定のCarbon APIに依存する...

私はしたいが、ほとんどの場合に動作します... ココアで達成するための他の方法はありますか?これに関するグローバルな通知?

+0

これは何のためですか?ユーザーがフルスクリーンゲームを起動した場合、ゲームの期間中、ユーザーがあなたのアプリとグラフィックでやりとりすることはないため、アプリはこれに応答して何もするべきではないはずです。画面の解像度が復元されますゲームが終了したとき。 – user57368

+1

これは私のアプリケーションのためのものです:http://joystickmapper.com/これはバックグラウンドで動作します。デスクトップ解像度とは異なる解像度を使用している場合、いくつかのゲームで発生する問題を解決するために画面解像度を変更するかどうかを知る必要があります。 – Rodrigo

答えて

1

あなたはおそらくすでにこのページを見て:

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

また、あなたがNSDistributedNotificationCenterだけではなくNSNotificationCenterを使用するので、他のアプリからの通知を考慮する必要がありそうです。

+0

ええ、私はこれを読んでいます。たぶん私は何かを間違えた。私は確かに確かめるために二重チェックします。 – Rodrigo

+0

どのように運賃ですか?システムがこれらの通知を提供しないので奇妙に思えるので、私はあなたがそれを動作させると好奇心が強いです! – markjs

+0

何らかの理由で、NSDistributedNotificationCenterが私のために働いていません。 NSNotificationCenterを使用するとき、私は通知を得た。しかし、一部のアプリが画面解像度を一時的に変更したとき(終了時に以前の解像度に戻る)、私のアプリは単に通知を受け取らない。これがバグか機能か分からない。 – Rodrigo

関連する問題