Как установить положение по умолчанию для представления NSScroll? - PullRequest
11 голосов
/ 29 апреля 2011

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

Ответы [ 3 ]

12 голосов
/ 29 апреля 2011

Попробуйте что-то вроде этого:

NSPoint pointToScrollTo = NSMakePoint (  ,  );  // Any point you like.
[[scrollView contentView] scrollToPoint: pointToScrollTo];
[scrollView reflectScrolledClipView: [scrollView contentView]];
4 голосов
/ 29 апреля 2011

Решение приведено в Руководстве по программированию Scroll View, Прокрутка до определенного местоположения . Вы можете использовать -[NSView scrollPoint:] для установки источника просмотра клипа.

// A controller which has an outlet to the scroll view
- (void)awakeFromNib {

    // Not checking for flipped document view. See sample code.
    // New origin should be 
    // (documentView.frame.y + documentView.frame.height) - clipView.bounds.height
    NSPoint newOrigin = NSMakePoint(0, NSMaxY([[scrollView documentView] frame]) -
                                           [[scrollView contentView] bounds].size.height);
    [[scrollView documentView] scrollPoint:newOrigin];
}
3 голосов
/ 03 июля 2011

Если у вас есть собственный подкласс NSView внутри NSScrollView, попробуйте переопределить isFlipped:

- (BOOL)isFlipped
{
    return YES;
}

Это помещает источник представления сверху, что должно заставить NSScrollView делать то, что вы хотите.

Тем не менее, он также перевернет координаты всего, что находится внутри вашего вида.

...