gpt4 book ai didi

cocoa - 在 Cocoa 中,当鼠标悬停在圆形 View 上时更改光标的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 16:20:03 25 4
gpt4 key购买 nike

我想做什么

我有一个圆形自定义 NSView 子类,当鼠标悬停在 View 的圆形部分上时,我想更改光标的外观,但当鼠标悬停在 View 矩形的位于圆之外的部分上时,则不更改光标的外观。

Here's an illustration 。我本来可以用图像标签内联它,但我太新了,无法参与如此出色的功能。

到目前为止我所知道的

我知道如何通过 NSCursor 更改光标的外观。我认为对于矩形 View 来说,实现此目的的最佳方法是使用光标矩形。我知道我可以接收 mouseMoved 事件(并且应该在鼠标不在该 View 上时使用 mouseEntered 和 mouseExited 将其关闭),并且有一种简单、廉价的方法来确定某个点是否位于感兴趣的区域中。

那么问题出在哪里呢?

据我所知,系统不会将 mouseMoved 事件发送到非第一响应者的 View 。因此,如果我想在鼠标悬停在我的 View 上时获取 mouseMoved 事件,我需要从当前拥有它的人那里窃取firstResponder 状态。如果 TextView 具有焦点,只需将鼠标移到此类 View 上就会将其夺走,从可用性的角度来看,这是完全 Not Acceptable 。

因此,我的问题归结为:有没有更好的方法来做到这一点?我可以在不成为第一响应者的情况下获取 mouseMoved 事件吗?

谢谢!

我会添加以下标签:自定义 View 鼠标事件NSCursorfirstResponder但再说一次,我是一名 SA 菜鸟,所以我不能。

最佳答案

我认为您可能只需要重写 NSView 中的 AcceptFirstResponder 方法即可返回 YES。如果不这样做,那么 View 将不会收到任何事件信息。

关于cocoa - 在 Cocoa 中,当鼠标悬停在圆形 View 上时更改光标的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1169639/

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