我正在尝试手动组装NSTextView,就像Apple的TextSizingExample一样,发现了一个无聊的bug。如果您运行TextSizingExample并选择“Wrapping Scrolling Text”模式,那么您将看到文本被垂直滚动条部分隐藏。试图使用文本容器和文本视图的大小和自动调整掩码,但它没有帮助。
答案 0 :(得分:1)
问题在于VerticalScrollAspect类创建滚动视图的天真方法。在-containerView方法中,有以下行:
scrollView = [[NSScrollView alloc] initWithFrame:[documentView frame]];
不幸的是,这并不考虑垂直滚动条的宽度或滚动视图的边框样式,这两者都很重要。
答案 1 :(得分:0)
您正在处理三个组件:包含窗口或视图,scrollview和scrollview中的textview。应该初始化scrollview以适合将在其中显示的视图或窗口的框架或边界,textview只需要知道scrollview的内容区域所在的位置。因此:
NSScrollView *scrollView = [[[NSScrollView alloc] initWithFrame:[containingView bounds]] autorelease];
NSSize contentSize = [scrollView contentSize];
NSTextView *textView = [[[NSTextView alloc] initWithFrame:NSMakeRect(0,
0,
contentSize.width,
contentSize.height)
] autorelease];