Пользовательский 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

Другие вопросы по тегам