0

が与えられた場合NSView、どうすればそのscreen-rectとそれがオンになっているディスプレイを取得できるので、使用できますCGDisplayCreateImageForRectか?

NSWindowconvertRectToScreenメソッドを見つけましたが、10.7からしか利用できず(10.6も必要です)、それでもディスプレイがオンになりませんNSView

4

1 に答える 1

3

ビューの実際のピクセルサイズを取得する必要がないと仮定すると(HDPIと通常のディスプレイでは異なるため、現時点では有用な値になるとは思えません)、基本的には使用するだけです。 NSViewconvertRect:toView:とNSWindowの組み合わせconvertBaseToScreen:。したがって、たとえば、[someView.window convertBaseToScreen:[someView convertRect:someView.bounds toView:nil]]。これは、ビューを異常な方法(回転など)で変換していないことを前提としています。ウィンドウが応答するかどうかのチェックを追加し、応答するconvertRectToScreen:場合はそれを使用する必要があることに注意してください。そうすれば、可能な場合は非推奨のメソッド(convertBaseToScreen:)を使用しないようにできます。

その後、画面の正確なピクセルサイズが必要な場合は、NSScreenを使用しますconvertRectToBacking:(これに必要かどうかはわかりません)。画面の決定に関しては、NSWindowにはそのscreen方法があり、ほとんどの場合これで十分です。私が見ることができる唯一の問題は、ビューが画面を横切るときです。そのため、他のディスプレイと交差しているかどうかを確認したり、画像をマージしたりする必要がある場合があります。とはいえ、これを説明するかどうかCGDisplayCreateImageForRectはわかりません。自分でテストする必要があります。

于 2012-09-01T16:11:24.907 に答える