将子视图添加到窗口中的视图时,将重置自定义NSCursor

时间:2013-11-20 14:41:30

标签: macos cocoa nsview appkit nscursor

我正在使用NSTrackingAreaNSView子类中定义2个区域。然后我使用mouseEntered / mouseExited将光标更改为自定义光标。

因此,当鼠标进入顶部跟踪区域并且自定义光标按预期设置时,一切正常。当我鼠标下拉并拖动顶部跟踪区域时,一切都还不错。但我有另一部分UI在拖动鼠标时更新,并将子视图添加到同一窗口其他位置的视图。

只要将第一个子视图添加到其他位置,我的自定义光标就会消失并恢复为箭头光标。我认为我可以使用cursorUpdate强制将光标强制回自定义视频但由于某种原因它永远不会被调用,即使在NSTrackingArea中设置为选项时也是如此。

有点难过这个......

1 个答案:

答案 0 :(得分:2)

我通过在窗口的自定义contentView中覆盖cursorUpdate来解决它。一个空的cursorUpdate方法阻止了更新从链传递到现在,自定义光标现在仍然是我设置的。