gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 07:16:46 29 4
gpt4 key购买 nike

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

我使用 NSEvent.mouseLocation() 获取鼠标位置,但这给了我一个相对于屏幕本身的绝对 NSPoint

self.frame (= NSButton.frame) 而是返回一些相对 坐标,引用按钮 super View 。

因此,self.frame.contains(NSEvent.mouseLocation()) 不起作用,我不知道如何解决!

感谢任何帮助!

最佳答案

您可以将 NSTrackingArea 与 NSTrackingAreaOptions.MouseEnteredAndExited 添加到您的 Button

或者你可以使用这段代码

将 NSPoint 转换为父 View 的坐标系

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

然后只需使用 self.frame.contains

if self.frame.contains(point)

关于swift - 证明光标位置是否在 NSButton 的框架内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41781752/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com