为什么我不应该在旋转的NSView子类上使用游标rect?

时间:2009-07-31 08:15:48

标签: cocoa nsview

我正在编写一个自定义的NSView子类。我的窗口中有几个这个类的实例,其中大部分是通过调用NSView的setFrameRotation方法来旋转的。我还需要在此视图的矩形区域上更改光标。

documentation for NSView's addCursorRect方法包含以下倾斜警告:

  

光标矩形不会受到超级视图的剪裁,也不适用于旋转视图

哎呀,糟透了。但是,我确实喜欢使用它们,因为它们比hacks I'd otherwise have to use更好的解决方案。而且,你知道吗?我试了一下它似乎工作正常。然而,那个警告吓到了我;我担心魔鬼会在路上的某个时刻来收集应有的款项。因此,我的问题是:有没有人知道为什么光标矩形不适用于旋转视图?

2 个答案:

答案 0 :(得分:1)

是的,它在发布我的问题之后发现,答案会发生在我身上。看起来好像光标所使用的命中检测只对简单的矩形进行操作;因此,如果旋转带有光标rect的视图,则使用的实际光标rect将是完全包围旋转的原始rect的最小矩形。

然而,如果我还没有看到其他不良副作用,我会保持开放状态。

答案 1 :(得分:1)

虽然我自己没有尝试过,但看起来10.5添加了一种使用Tracking Area Objects执行此操作的新方法,并且它似乎没有旧学校光标所具有的限制。