光标在兄弟姐妹之上

时间:2015-01-06 19:40:07

标签: cocoa nstextview appkit nsbutton

假设有一个窗口具有非常简单的UI层次结构,它只有两个兄弟:NSTextView和NSButton,它们确实重叠。

我的问题是,当鼠标悬停在按钮上时,为什么光标会有所不同,具体取决于它下面是否有文本视图?为什么文本光标"泄漏"通过按钮?如何使按钮保持其光标而不管其下方是什么?

我以为我可以创建一个NSView,将按钮放在其中,并以某种方式使视图"不透明"但是我没有走得太远......

我想要做的就是有一个按钮,它会浮动"在textview上方,仍然显示正确的(正常)光标。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaViewsGuide/WorkingWithAViewHierarchy/WorkingWithAViewHierarchy.html

  

出于性能原因,Cocoa不强制兄弟之间的剪辑   查看或保证正确的失效和绘图行为时   兄弟视图重叠。如果你想在前面绘制一个视图   另一种观点,你应该让前视图成为子视图(或后代)   后视图。

您可以使用NSTrackingArea手动更新光标:

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/TrackingAreaObjects/TrackingAreaObjects.html