【问题标题】:Mouseover in NSTableViewNSTableView 中的鼠标悬停
【发布时间】:2009-06-11 21:01:39
【问题描述】:

我在使用 NSTableView 创建鼠标悬停函数时遇到问题。这个想法是(如果在首选项中选择了该功能)将鼠标指针放在 NSTabelView 中的特定行上方将显示一个小的弹出窗口,其中包含有关该特定行中条目的附加信息。效果不应该是立竿见影的(例如,在滚动按钮时突出显示按钮),而是会延迟几秒钟。

到目前为止,我已经使用工具提示委托方法实现了此功能,但是如果需要显示超过 1-3 行信息,这不允许自定义窗口并且效果不佳(布局方面)。

在 Hillegass 的书中,建议使用 mouseEntered/mouseExited 方法进行翻转,但据我所知,这适用于窗口的预定义区域,而不是表格视图中的行。

有人有什么建议吗?

格雷戈·托马塞维奇, 瑞典

【问题讨论】:

    标签: objective-c cocoa macos


    【解决方案1】:

    使用 -mouseEntered: 和 -mouseExited:,您走在正确的轨道上。

    查看 NSView 的 -addTrackingRect:owner:userData:assumeInside: 和 -removeTrackingRect: 方法。您可以设置您的 tableView 以在 tableView 的内容更改时为其中的每一行创建 trackingRects,或者,每当调用 -tile 或其他与布局相关的方法时,设置/更新整个 tableView 上的一个跟踪区域。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-23
      • 2011-08-04
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 2011-05-26
      • 2017-10-14
      相关资源
      最近更新 更多