证明光标位置是否在 NSButton 的框架内
Prove if cursors location is within NSButton’s frame
我有一个自定义 NSButton
class 并想检查(在 viewWillDraw
内)用户当前的鼠标位置是否在按钮框架内。
我使用 NSEvent.mouseLocation()
获取鼠标位置,但这给了我相对于屏幕本身的 绝对 NSPoint
。
self.frame
(= NSButton.frame) 而不是 returns 一些 relative 坐标,指的是按钮超级视图。
因此,self.frame.contains(NSEvent.mouseLocation())
不起作用,我不知道如何解决!
感谢任何帮助!
您可以将带 NSTrackingAreaOptions.MouseEnteredAndExited 的 NSTrackingArea 添加到您的按钮
或者您可以使用此代码
将 NSPoint 转换为父视图的坐标系
let point = self.superview!.convert(self.window!.mouseLocationOutsideOfEventStream, from: nil)
然后只需使用 self.frame.contains
if self.frame.contains(point)
我有一个自定义 NSButton
class 并想检查(在 viewWillDraw
内)用户当前的鼠标位置是否在按钮框架内。
我使用 NSEvent.mouseLocation()
获取鼠标位置,但这给了我相对于屏幕本身的 绝对 NSPoint
。
self.frame
(= NSButton.frame) 而不是 returns 一些 relative 坐标,指的是按钮超级视图。
因此,self.frame.contains(NSEvent.mouseLocation())
不起作用,我不知道如何解决!
感谢任何帮助!
您可以将带 NSTrackingAreaOptions.MouseEnteredAndExited 的 NSTrackingArea 添加到您的按钮
或者您可以使用此代码
将 NSPoint 转换为父视图的坐标系
let point = self.superview!.convert(self.window!.mouseLocationOutsideOfEventStream, from: nil)
然后只需使用 self.frame.contains
if self.frame.contains(point)