在NSTextView上有一个NSView,NSTextview的范围大于NSView范围。
NSView有上面的一些NSButton等,工作得很好,但鼠标风格让我有点疑惑。
我认为当鼠标移动到NSView时,它一直是箭头样式,但不是,它总是显示iBeam样式。
因为它在NSTextView上,所以当我的鼠标移动到NSView时,它会显示iBeam样式。我通过覆盖func mouseMoved(使用事件:NSEvent)实时更改鼠标NSCursor.arrow.set,虽然没关系,我发现它会闪烁并偶尔显示iBeam。
这是图层的问题吗?或者我应该做的更好,至少不会闪烁。
我看了一些问题,但他们没有很好地回答这个问题,所以我再次回答这个问题,并希望得到确切的答案。
答案 0 :(得分:2)
NSTextView
将鼠标光标重置为mouseMoved:
事件。
如果您拥有NSTextView,则可以对其进行子类化并覆盖mouseMoved:
。 This answer有一些很好的例子。
如果这不是您的选择,则需要将NSView
(文本字段上方的那个)放在透明的无边框NSWindow
中。然后通过将窗口设置为子窗口来定位并保持窗口就位。有关方法,请参阅this answer。