从窗口坐标转换NSPoint

Dr.*_*eon 3 macos cocoa objective-c webview

draggingUpdated:在一个WebView子类中重写.通过这种方式,我可以获得NSPoint当前拖动目标的位置[(id<NSDraggingInfo>)sender draggingLocation]

我要得到这个NSPoint和"转换"它的坐标WebView,然后在与该点获得底层元素WebViewelementAtPoint:

问题是,我得到了NSPoint,我也有WebView的边界/框架.这怎么可兑换?

Ken*_*ses 6

使用它是不正确的-convertPointFromBase:.不推荐使用该方法,并且建议的replacement(-convertPointFromBacking:)不适用于此目的,因为它假定输入点位于后备存储坐标系中.(这实际上暗示了最初的目的-convertPointFromBase:,这是现在被抛弃的Leopard时代高分辨率支持尝试的一部分.它转换的"基本坐标系"应该是像素对齐的. for Leopard AppKit发行说明中的'像素对齐和转换视图坐标与基础"空间" .)

你想-convertPoint:fromView:,你应该传递nilfromView参数.请参阅Cocoa绘图指南:坐标系和变换 - 从窗口转换为视图坐标.