が与えられた場合NSView
、どうすればそのscreen-rectとそれがオンになっているディスプレイを取得できるので、使用できますCGDisplayCreateImageForRect
か?
NSWindowconvertRectToScreen
メソッドを見つけましたが、10.7からしか利用できず(10.6も必要です)、それでもディスプレイがオンになりませんNSView
。
が与えられた場合NSView
、どうすればそのscreen-rectとそれがオンになっているディスプレイを取得できるので、使用できますCGDisplayCreateImageForRect
か?
NSWindowconvertRectToScreen
メソッドを見つけましたが、10.7からしか利用できず(10.6も必要です)、それでもディスプレイがオンになりませんNSView
。
ビューの実際のピクセルサイズを取得する必要がないと仮定すると(HDPIと通常のディスプレイでは異なるため、現時点では有用な値になるとは思えません)、基本的には使用するだけです。 NSViewconvertRect:toView:
とNSWindowの組み合わせconvertBaseToScreen:
。したがって、たとえば、[someView.window convertBaseToScreen:[someView convertRect:someView.bounds toView:nil]]
。これは、ビューを異常な方法(回転など)で変換していないことを前提としています。ウィンドウが応答するかどうかのチェックを追加し、応答するconvertRectToScreen:
場合はそれを使用する必要があることに注意してください。そうすれば、可能な場合は非推奨のメソッド(convertBaseToScreen:
)を使用しないようにできます。
その後、画面の正確なピクセルサイズが必要な場合は、NSScreenを使用しますconvertRectToBacking:
(これに必要かどうかはわかりません)。画面の決定に関しては、NSWindowにはそのscreen
方法があり、ほとんどの場合これで十分です。私が見ることができる唯一の問題は、ビューが画面を横切るときです。そのため、他のディスプレイと交差しているかどうかを確認したり、画像をマージしたりする必要がある場合があります。とはいえ、これを説明するかどうかCGDisplayCreateImageForRect
はわかりません。自分でテストする必要があります。