【问题标题】:Cursor above siblings光标在兄弟姐妹上方
【发布时间】:2015-01-06 19:40:07
【问题描述】:

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

我的问题是,为什么光标悬停在按钮上时会有所不同,这取决于它下面是否有文本视图?为什么文本光标会通过按钮“泄漏”?无论按钮下方是什么,如何让按钮保留其光标?

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

我想要做的是有一个“浮动”在文本视图上方的按钮,并且仍然显示正确的(正常)光标。

【问题讨论】:

    标签: cocoa nstextview appkit nsbutton


    【解决方案1】:

    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

    【讨论】:

    • 我以为 NSButton 有自己的跟踪区域。无论如何,我尝试了addTrackingArea:,但它也没有工作......
    猜你喜欢
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多