4

サブクラスでオーバーライドdraggingUpdated:しています。WebViewこのようにしてNSPoint、ドラッグ先が現在どこにあるかを取得できます[(id<NSDraggingInfo>)sender draggingLocation]

これを取得してNSPoint座標に「変換」し、その時点で の基になる要素を取得したいWebViewWebViewelementAtPoint:

問題は、私は を取得しNSPoint、WebView の境界/フレームも持っているということです。このコンバーチブルはどうですか?

4

2 に答える 2

7

これを使用するのは正しくありません-convertPointFromBase:。このメソッドは非推奨であり、提案された代替 ( -convertPointFromBacking:) は、入力ポイントがバッキング ストア座標系にあると想定しているため、この目的には適していません。(これは、現在は放棄された Leopard 時代の高解像度サポートの試みの一部であった の元の目的に関するヒントを実際に与えます-convertPointFromBase:。それが変換する「ベース座標系」は、ピクセルで整列されていると想定されていました。Leopard AppKit リリース ノートの「ピクセルの位置合わせと "ベース" スペースとの間のビュー座標の変換」を参照してください。)

必要に応じて、パラメーター-convertPoint:fromView:を渡す必要があります。Cocoa Drawing Guide: Coordinate Systems and Transforms – Converting from Window Coordinatesを参照してください。nilfromView

于 2013-08-24T05:58:31.640 に答える