【问题标题】:custom shaped tracking area in cocoa可可中的自定义形状跟踪区域
【发布时间】:2010-12-16 09:38:24
【问题描述】:

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

Carbon 通过 HIViewNewTrackingArea 提供了这个功能,通过它 任何 HIShapeRef 都可以注册为跟踪区域。我们在 cocoa 中是否有类似的东西?

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

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

您能建议任何其他方法吗?

如果 cocoa 中有类似 HIViewNewTrackingArea 的 api 会更容易。

谢谢。

【问题讨论】:

    标签: cocoa macos macos-carbon


    【解决方案1】:

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

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

    【讨论】:

    • thanks :) 终于解决了,使用多个跟踪区域覆盖路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    相关资源
    最近更新 更多