NSScrollView: убедитесь, что кадр виден - PullRequest
1 голос
/ 04 февраля 2012

У меня есть NSCollectionView, в котором перечислены элементы из основного источника данных.У каждого элемента есть кнопка, которая при срабатывании скользит вниз по представлению действия.Когда это представление сдвигается вниз, представление сбора сокращается, так что оба представления помещаются друг на друга в одном и том же пространстве окна.

Чтобы обеспечить удобство работы с пользователем, я хочу, чтобы NSCollectionViewItem, вызвавший действие,полностью виденУ меня есть его кадр - который я получил от -frameForItemAtIndex:.

Как я могу - используя переменную NSRect frame и мой scrollView выход - проверить, видна ли frame в scrollView и,если это не так, прокрутите scrollView так, чтобы это было?

1 Ответ

4 голосов
/ 01 марта 2012

Вы должны быть в состоянии сделать что-то вроде этого:

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

Обратите внимание, что вы отправляете scrollRectToVisible: в collectionView, а не в scrollView. Если selectionRect уже виден, вызов не будет ничего делать.

...