2012-02-04 59 views
1

我有一個NSCollectionView列出來自核心數據源的項目。每個項目都有一個按鈕,當被觸發時可以沿着動作視圖滑動。當此視圖向下滑動時,集合視圖會縮小,以便兩個視圖在同一個窗口空間中彼此重疊。NSScrollView:確保框架可見

爲了提供良好的用戶體驗,我希望啓動動作的NSCollectionViewItem完全可見。我有它的框架 - 我從-frameForItemAtIndex:得到。

我如何 - 使用NSRect frame變量,我scrollView出口 - 檢查是否framescrollView可見,如果不是,滾動scrollView使其?

回答

3

你應該能夠做這樣的事情:

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

請注意,您所發送scrollRectToVisible:到的CollectionView,不以滾動視圖。如果selectionRect已經可見,則該呼叫將不會執行任何操作。