Пользовательский NSSroller внутри NSScrollView
У меня есть IKImageBrowserView, встроенный в NSScrollView.
Я пытаюсь создать полосы прокрутки, подобные тем, которые мы видим в Lion или других приложениях, таких как Sparrow и Reeder. Я бы хотел, чтобы мои полосы прокрутки просматривали содержимое.
Так что единственная проблема, которая у меня есть, заключается в том, что контент проходит через полосу прокрутки, а не падает.
Я знаю, что могу играть с -tile
метод NSScrollView, чтобы упорядочить различные части, но я не знаю, как я могу использовать его для своих целей.
РЕДАКТИРОВАТЬ: это код в моем -tile
:
- (void)tile
{
[super tile];
// We move the scroll to be just below the scrollView
NSScroller *verticalScroller = [self verticalScroller];
NSRect verticalScrollerFrame = [verticalScroller frame];
verticalScrollerFrame.origin.x -= 117.0;
[verticalScroller setFrame:verticalScrollerFrame];
// We expand the scrollview to embrace the whole window
NSRect scrollViewFrame = [self frame];
scrollViewFrame.size.width = 655.0;
[self setFrame:scrollViewFrame];
}
Вот как это выглядит:
Кто-нибудь знает, почему содержимое полос прокрутки идет под представлением содержимого? Или есть пример?
Я уже смотрел на эту тему: наложение NSScroller на контент и многие другие, не найдя ответа.
Спасибо за вашу помощь!
2 ответа
Хорошо, я думаю, что нашел проблему.
NSRect scrollViewFrame = [self frame];
scrollViewFrame.size.width = 655.0;
[self setFrame:scrollViewFrame];
В этом блоке я использую [self frame]
получить NSClipView contentFrame вместо [[self contentView] frame]
,
Это должно выглядеть так.
NSRect scrollViewFrame = [[self contentView] frame];
scrollViewFrame.size.width = 655.0;
[[self contentView] setFrame:scrollViewFrame];
Я еще не пробовал, но уверен, что это проблема.
Воробей разработчик разместил свой код здесь: http://dinhviethoa.tumblr.com/post/6138273608/ios-style-scrollbars-for-nsscrollview