gpt4 book ai didi

cocoa - NSScrollview的scrollPoint不会滚动到点

转载 作者:行者123 更新时间:2023-12-03 16:41:46 25 4
gpt4 key购买 nike

我现在正在尝试 2 小时让我的 ScrollView 滚动到特定点。这令人沮丧,我无法告诉你为什么它不起作用。

我有一个 ScrollView ,其中有一个 NSClipView。它们是在我的 AppDelegate 中在我的滚动点之前创建的。

但要么

[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?

并没有帮助我,我也没有在 loadView 方法中尝试它。 scrollView 和 myclipview 也不为零。有什么建议给我吗? ScrollView 工作正常,只是它不会滚动到我的位置。

编辑

为了确定,我做了这个小测试项目:

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];

它不会滚动到任何地方,我想我在这里遗漏了一些东西......?

最佳答案

您所拥有的小型测试项目需要按以下方式进行更改。我已经尝试过这个并且似乎有效。如果您还有其他问题,请告诉我。

希望这能解决问题:)

   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];

关于cocoa - NSScrollview的scrollPoint不会滚动到点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com