证明光标位置是否在 NSButton 的框架内



我有一个自定义NSButton类,想检查(在viewWillDraw内)用户当前鼠标位置是否在按钮框架内。

我使用 NSEvent.mouseLocation() 获得鼠标位置,但这给了我与屏幕本身相关的绝对NSPoint

self.frame (= NSButton.frame) 而是返回一些相对坐标,引用按钮超级视图。

结果,self.frame.contains(NSEvent.mouseLocation())不起作用,我不知道如何解决这个问题!

感谢任何帮助!

您可以使用 NSTrackingAreaOptions.MouseEnteredAndExited 添加到您的按钮

或者您可以使用此代码

将 NSPoint 转换为超级视图的坐标系

let point = self.superview!.convert(self.window!.mouseLocationOutsideOfEventStream, from: nil)

然后只使用 self.frame.contains

if self.frame.contains(point)

相关内容

  • 没有找到相关文章

最新更新