我draggingUpdated:
在一个WebView
子类中重写。这样我就可以获得NSPoint
当前拖动目的地的位置[(id<NSDraggingInfo>)sender draggingLocation]
我想得到这个NSPoint
并将其“转换”为 中的坐标,然后WebView
使用WebView
's获取该点的基础元素elementAtPoint:
问题是,我得到了NSPoint
,而且我也有 WebView 的边界/框架。这个敞篷车怎么样?
我draggingUpdated:
在一个WebView
子类中重写。这样我就可以获得NSPoint
当前拖动目的地的位置[(id<NSDraggingInfo>)sender draggingLocation]
我想得到这个NSPoint
并将其“转换”为 中的坐标,然后WebView
使用WebView
's获取该点的基础元素elementAtPoint:
问题是,我得到了NSPoint
,而且我也有 WebView 的边界/框架。这个敞篷车怎么样?
用于此是不正确-convertPointFromBase:
的。该方法已被弃用,建议的替换 ( -convertPointFromBacking:
) 不适用于此目的,因为它假定输入点位于后备存储坐标系中。(这实际上暗示了 的最初目的-convertPointFromBase:
,这是现已被放弃的 Leopard 时代对高分辨率支持的尝试的一部分。它转换的“基本坐标系”应该是像素对齐的。搜索用于Leopard AppKit 发行说明中的“像素对齐和将视图坐标转换为“基础”空间和从“基础”空间转换。)
你想要-convertPoint:fromView:
并且你应该传递参数nil
。fromView
请参阅Cocoa 绘图指南:坐标系和变换 - 从窗口坐标转换为视图坐标。
好的,哇。刚刚遇到了可可似乎绝对令人惊叹的案例之一:
[self convertPointFromBase:point];
是的,这就是全部。