如何在NSTextView上改变NSView和NSButton的鼠标样式

How to change the mouse style of NSView and NSButton on NSTextView

NSTextView之上还有一个NSView,NSTextview的范围比NSView的范围大

NSView还有上面的一些NSButton等等,效果很好,但是鼠标样式让我有点摸不着头脑。

我以为当鼠标移动到NSView时,一直是箭头样式,其实不是,一直显示iBeam样式

因为是在NSTextView上,所以当我的鼠标移到NSView上时,显示的是iBeam风格。我通过覆盖 func mouseMoved(事件:NSEvent)实时更改鼠标 NSCursor.arrow.set,虽然没关系,但我发现它会闪烁并偶尔显示 iBeam。

是图层的问题吗?或者我应该做的更好,至少不会闪烁。

我看了一些问题,但是他们没有很好地回答这个问题,所以我把这个问题重新说一遍,希望得到准确的答案。

NSTextView 在其 mouseMoved: 事件中重置鼠标光标。

如果您拥有 NSTextView,则可以将其子类化并覆盖 mouseMoved:This answer 有一些很好的例子。

如果这不适合您,您需要将 NSView(文本字段上方的那个)放在透明的无边框 NSWindow 中。然后通过使 window 成为子 window 来定位并保持 window 到位。有关方法,请参阅 this answer