可可中的自定义形状跟踪区域

发布于 2024-10-08 09:06:03 字数 326 浏览 4 评论 0原文

如何在可可中创建自定义形状的跟踪区域? 在可可中我只能找到矩形作为跟踪区域。

Carbon 通过 HIViewNewTrackingArea 提供了此功能,通过该功能 任何 HIShapeRef 都可以注册为跟踪区域。我们在可可中有类似的东西吗?

我有一个复杂的形状,我想在其中的不同区域更改鼠标光标。

我尝试的一种方法是制作一个覆盖整个区域的大跟踪矩形,然后 使用 mouseMoved 事件更改光标。

你能建议任何其他方法来做到这一点吗?

如果cocoa中有类似HIViewNewTrackingArea这样的api就更简单了。

谢谢。

How to create a custom shaped tracking area in cocoa ?
In cocoa I could only find rectangles as tracking area.

Carbon provided this functionality through HIViewNewTrackingArea , through which
any HIShapeRef could be registered as a tracking area.Do we have something similar to this in cocoa ?

I have a complex shape in which I want to change mouse cursors at different regions.

One approach I tried was making a big tracking rectangle covering the whole area, and then
changing cursor using mouseMoved events.

Could you suggest any other way to do it.

It would have been easier if there was a similar api like HIViewNewTrackingArea in cocoa.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温暖的光 2024-10-15 09:06:03

在 Cocoa 框架中,跟踪区域只是矩形。您可以覆盖整个区域,然后创建一个 NSBezierPath(保留它,但不描边或填充)并通过 -containsPoint: 询问该点是否在其中。

跟踪区域“激活”鼠标跟踪,而路径提供自定义形状的点击检测机制。

Tracking areas are only rectangular in the Cocoa frameworks. You could cover your entire area, then create an NSBezierPath (which you keep around but do not stroke or fill) and ask it if the point is inside it via -containsPoint:.

The tracking area "activates" mouse tracking while the path provides your custom-shaped hit detection mechanism.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文