contentize и contentOffset эквивалент в представлении NSScroll - PullRequest
23 голосов
/ 11 августа 2010

Я портирую приложение с Ipad на Mac.(Я знаю, это звучит странно)

Я застрял с NSScrollview.Пожалуйста, направьте меня contentize, contentOffset эквивалент в NSScrollview.

Ответы [ 3 ]

47 голосов
/ 29 января 2013
UIScrollView* uiScroll;
uiScroll.contentSize;
uiScroll.contentOffset;
uiScroll.contentSize = CGSizeMake(w,h);
uiScroll.contentOffset = CGPointMake(x,y);

=

NSScrollView* nsScroll;
nsScroll.documentView.frame.size;
nsScroll.documentVisibleRect.origin;
nsScroll.documentView.frameSize = NSMakeSize(w,h);
[nsScroll.documentView scrollPoint:NSMakePoint(x,y)];

Редактировать: модернизировать синтаксис

0 голосов
/ 12 апреля 2018

В дополнение к строкам из @aepryus, вот еще пара полезных строк для получения / установки смещения прокрутки в macOS:

//Get the current scroll offset:
_contentViewOffset = scrollView.contentView.bounds.origin;

//Set the scroll offset from the retrieved point:
NSPoint scrollPoint = [scrollView.contentView convertPoint:_contentViewOffset toView:scrollView.documentView];
[scrollView.documentView scrollPoint:scrollPoint];
0 голосов
/ 06 мая 2011

Все, что вам нужно знать о NSScrollView, изложено в Руководстве по программированию с прокруткой для какао , представленном в документации.

Хотя, как представляется, прямойэквивалентно, UIScrollView contentSize можно сравнить с размером NSScrollView documentView, который представляет собой прокручиваемое содержимое, предоставляемое как NSView до NSScrollView с setDocumentView:.

setContentOffset: можно сравнить с NSView scrollPoint:, который использует NSPoint для указания смещения documentView в пределах NSScrollView.

См. Подробности в документациии примеры кода.

...