gpt4 book ai didi

cocoa - 滚动 NSTextView 使滚动条处于错误位置

转载 作者:行者123 更新时间:2023-12-03 16:14:35 31 4
gpt4 key购买 nike

我在 NSScrollView 中有一个 NSTextView。我将文本放入 NSTextView 中并以编程方式将其滚动到底部,这工作正常,但滚动条保持在顶部。使用鼠标定位滚动条会使其跳到其所属的底部,从该点开始,它可以正常运行。

我的代码:

textView.string = s;
[textView scrollToEndOfDocument:self];

不要沉迷于scrollToEndOfDocument方法——我也尝试过:

[textView scrollRangeToVisible:NSMakeRange(s.length, 0)];

和:

[[scrollViewText contentView] scrollToPoint:NSMakePoint(0, textView.frame.size.height)];
[scrollViewText reflectScrolledClipView:[scrollViewText contentView]];

有完全相同的问题,如下所示:

Scroll bar in wrong position.

我通过添加一行解决了这个问题:

textView.string = s;
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantPast]];
[textView scrollToEndOfDocument:self];

runUntilDate 调用不是必需的。我的理论是,它让 NSScrollView 有机会以某种方式 catch 并同步自身。

这一切都在 Lion 上。我尝试将系统偏好设置为 Lion“向后”滚动和传统的前 Lion 滚动,结果相同。

任何想法:

  1. 为什么我添加的通话有帮助,以及
  2. 如何在没有该调用的情况下使其正常工作?

最佳答案

尝试 NSScrollView 的 reflectScrolledClipView:

编辑:如何替换[[scrollViewText contentView]scrollToPoint:NSMakePoint(0, textView.frame.size.height)];

[scrollView.contentViewscrollToPoint:NSMakePoint(0,scrollView.documentView.frame.size.height-scrollView.contentSize.height)];

因为就目前情况而言,我相信您正在滚动经过文档 View 的框架。

关于cocoa - 滚动 NSTextView 使滚动条处于错误位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8084473/

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