这是我想要完成的事情:我正在开发一个开源 TI 计算器模拟器,我目前正在尝试添加皮肤支持。皮肤图像只是一个 NSImageView,其图像设置为皮肤图像。我重写 mouseDown: 方法并使用 convertPointFromBase: 以 locationInWindow 返回值作为转换点来获取鼠标在 NSImageView 坐标中的位置。
然后,我使用 bestRepresentationForDevice: 从 NSImageView 获取底层 NSBitmapImageRep,并带有一个 nil 参数。最后,我在 NSBitmapImageRep 上调用 getPixel:atX:y 并使用 point.x 和 point.y 作为位置。
但是,NSImageView 的原点从左下角开始(像往常一样),而 NSBitmapImageRep 的坐标从左上角开始。我似乎找不到一种明显的方法来弥补这一点,因此按钮点击的命中测试无法正常工作。任何帮助是极大的赞赏。