我有NSCollectionView
列出核心数据源中的项目。每个项目都有一个按钮,当触发时向下滑动动作视图。当此视图向下滑动时,集合视图会缩小,以使两个视图在同一窗口空间中相互叠加。
为了提供良好的用户体验,我希望触发操作的NSCollectionViewItem
完全可见。我有它的框架 - 我从-frameForItemAtIndex:
获得。
我如何 - 使用NSRect frame
变量和我的scrollView
商店 - 检查frame
中是否显示scrollView
,如果不可见,请滚动{ {1}}这样呢?
答案 0 :(得分:4)
你应该可以这样做:
NSRect selectionRect = [self.collectionView frameForItemAtIndex:[[self.collectionView selectionIndexes] firstIndex]];
[self.collectionView scrollRectToVisible:selectionRect];
请注意,您要将scrollRectToVisible:
发送到collectionView,而不是发送到scrollView。如果selectionRect已经可见,则呼叫将不会执行任何操作。