2013-06-13 4 views
2

Я пытаюсь в течение 2 часов, чтобы получить прокрутку прокрутки определенной точки. Его разочарование, и я не могу сказать вам, почему это не сработает.NSScrollview scrollPoint не прокручивает до пункта

У меня есть scrollview, и в нем есть NSClipView. Они создаются в моем AppDelegate прямо перед моим scrollPoint.

но либо

[myclipview scrollPoint:NSMakePoint(1000.0, 0.0)]; 

работы, ни

[[self.scrollView documentView] scrollPoint:NSMakePoint(1000.0, 0.0)]; 

(Я хочу, чтобы прокрутить весь путь направо, но не с любым методом флип или СТГ.)

Нашел этот вопрос Why is [[NSScrollView documentView] scrollPoint:] not working in loadView method?

И не сделал t помогите мне, я также не пробую его в методе loadView. scrollView и myclipview arent nil. Какие-нибудь советы для меня? Функция scrollview отлично работает, за исключением того, что она не прокручивается до моей позиции.

EDIT

просто быть уверенны, я сделал этот небольшой тестовый проект:

NSScrollView* myscrollview = [[NSScrollView alloc] initWithFrame:NSMakeRect(0, 0, 200, 200)]; 
NSClipView* myclipview = [[NSClipView alloc] initWithFrame:NSMakeRect(0, 0, 500, 400)]; 
[myscrollview setHasVerticalScroller:YES]; 
[myscrollview setHasHorizontalScroller:YES]; 
[myscrollview setDocumentView:myclipview]; 

[[myscrollview documentView] scrollPoint:NSMakePoint(400, 300)]; 

[self.window.contentView addSubview:myscrollview]; 

и оно не прокручивать в любом месте, я думаю, что я что-то здесь отсутствует ...?

+0

просто быть уверен, что я сделал этот небольшой TestProject: – bennibeef

+0

Я думаю, вам нужно установить рамки для documentView из NSScrollView экземпляра особенно высоты. –

+0

@PatrickTescher Нет «setContentOffset» вне iOS. Вопрос в том, что «NSScrollView» не «UIScrollView» – Charlesism

ответ

1

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

Надеется, что это будет решить проблему:)

NSScrollView* myscrollview = [[NSScrollView alloc] initWithFrame:NSMakeRect(10.0f, 100.0f, 200, 200)]; 
    NSClipView* myclipview = [[NSClipView alloc] initWithFrame:NSMakeRect(10.0f, 100.0f, 500, 400)]; 
    [myscrollview setHasVerticalScroller:YES]; 
    [myscrollview setHasHorizontalScroller:YES]; 
    [myscrollview setDocumentView:myclipview]; 

    [self.window.contentView addSubview:myscrollview]; 


    //******** Code Changes from here********** 
    //This Calculation needs to be done 
    CGPoint newScrollOrigin=NSMakePoint(0.0,NSMaxY([[myscrollview documentView] frame]) 
           -NSHeight([[myscrollview contentView] bounds])); 

    //Increment/Decrement in x of newScrollOrigin will move the scroll position horizontally 
    //Increment/Decrement in y of newScrollOrigin will move the scroll position vertically. 

    //Incrementation of Values depends on your requirement. 
    CGPoint setOrigin = CGPointMake(newScrollOrigin.x , newScrollOrigin.y - 120.0f); 

    //Set the Scroll Point 
    [[myscrollview contentView] scrollToPoint:setOrigin]; 
+0

Эй, спасибо! Но я уже пробовал scrollToPoint, и все по другому. Он запускает scrollview в этом месте. Но я не могу прокрутить область, которая «оставлена» от Точки. Я хочу «поместить полосу прокрутки» в другую точку, а не в рамки прокрутки. Мне нужна функция scrollPoint, но у меня нет идеи, почему она ничего не делает. – bennibeef

+0

// Инкремент значений зависит от вашего требования. Вставка x переместит скроллер вправо, а декремент x переместит скроллер влево. CGPoint setOrigin = CGPointMake (newScrollOrigin.x + 400.0f, newScrollOrigin.y - 120.0f); // Установить точку прокрутки [[myscrollview contentView] scrollPoint: setOrigin]; –