2009-01-21 140 views
1

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

到目前为止,我已经使用tooltip委托方法实现了此功能,但是这不允许定制窗口,并且如果需要显示多于1-3行的信息,则不能很好地工作(布局明智) 。

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

有没有人有任何建议?

格雷戈尔Tomasevic, 瑞典

回答

1

你是在正确的轨道上-mouseEntered:和-mouseExited :.

查找到的NSView的-addTrackingRect:所有者:用户数据:assumeInside:和-removeTrackingRect:方法。您可以设置您的tableView为每当tableView的内容发生变化时为其创建的每一行创建trackingRects,或者在调用整个tableView时设置/更新一个跟踪区域。