NSScrollView:确保框架可见

时间:2012-02-04 19:40:33

标签: cocoa nsscrollview

我有NSCollectionView列出核心数据源中的项目。每个项目都有一个按钮,当触发时向下滑动动作视图。当此视图向下滑动时,集合视图会缩小,以使两个视图在同一窗口空间中相互叠加。

为了提供良好的用户体验,我希望触发操作的NSCollectionViewItem完全可见。我有它的框架 - 我从-frameForItemAtIndex:获得。

我如何 - 使用NSRect frame变量和我的scrollView商店 - 检查frame中是否显示scrollView,如果不可见,请滚动{ {1}}这样呢?

1 个答案:

答案 0 :(得分:4)

你应该可以这样做:

NSRect selectionRect = [self.collectionView frameForItemAtIndex:[[self.collectionView selectionIndexes] firstIndex]];
[self.collectionView scrollRectToVisible:selectionRect];

请注意,您要将scrollRectToVisible:发送到collectionView,而不是发送到scrollView。如果selectionRect已经可见,则呼叫将不会执行任何操作。