gpt4 book ai didi

cocoa - NSScrollView 滚动条的长度错误

转载 作者:行者123 更新时间:2023-12-03 16:19:48 27 4
gpt4 key购买 nike

我有一个 Cocoa 窗口,其内容 View 包含一个 NSScrollView,而 NSScrollView 又包含一个固定大小的 NSView。

启动程序后,最初显示的滚动条太小,就好像内容大小比实际大得多:

enter image description here

当我开始使用垂直滚动条,并将其带回到顶部的原始位置时,它会调整为预期大小(对应于 ScrollView 和内容 View 大小的比率):

enter image description here

(请注意水平条,它的大小仍然不正确。如果我随后使用它,并将其带回到最左边的位置,它就会调整为正确的大小。)

最佳答案

我也遇到了同样的问题,我到处搜索过,但似乎没有人遇到这个问题。幸运的是,我找到了解决问题的方法。

我注意到的是,当调整窗口大小或最大化时,滚动条会调整到预期大小(必须启用自动调整大小)。这是因为当窗口大小调整时, ScrollView 和滚动条的长度也会重新计算并正确计算。可能由于某些错误,初始化时无法正确计算滚动条长度。无论如何,要解决问题,请在应用程序委托(delegate)中创建一个到窗口的导出。重写“applicationDidFinishLaunching”方法,并在其内部调用窗口导出上的“frame”方法,该方法返回窗口当前的 NSRect。使用返回值将 size.width 和 size.height 加一。调用 setFrame 方法并将显示设置为 YES。这将调整窗口大小并强制重新计算滚动条的大小。

下面是 applicationDidFinishLaunching 的代码

(void)applicationDidFinishLaunching:(NSNotification *)aNotification
{

// Get the current rect
NSRect windowRect = [_window frame];`

// add one to the width and height to resize window
windowRect.size.width += 1;
windowRect.size.height += 1;

// resize window with display:YES to redraw window subviews
[_window setFrame:windowSize display:YES];

}

关于cocoa - NSScrollView 滚动条的长度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689601/

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