2009-12-11 84 views
0

我试图手动组装一个NSTextView,就像苹果的TextSizingExample一样,发现了一个无聊的bug。如果您运行TextSizingExample并选择“Wrapping Scrolling Text”模式,那么您将看到文本被垂直滚动条部分隐藏。试图玩的文本容器和文本视图的大小和自动调整掩码,但它没有帮助。Handwired NSTextView剪辑错误

回答

1

问题在于VerticalScrollAspect类的创建滚动视图的幼稚方法。在-containerView方法,有以下线路:

scrollView = [[NSScrollView alloc] initWithFrame:[documentView frame]];

不幸的是,这并不占垂直滚动条的宽度或滚动视图的边框样式,这两者都是重要的考虑。

+0

谢谢,约书亚,它帮助。 – Indoor 2009-12-11 15:50:56

0

您正在处理三个组件:包含窗口或视图,scrollview和scrollview内的textview。应该初始化滚动视图以适应要显示的视图或窗口的框架或边界,文本视图只需要知道滚动视图的内容区域位于何处。因此:

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

尽管确实如此,但这并不能解决OP所关注的演示问题。在演示中,创建这些嵌套视图的顺序被设置为使得滚动视图(天真地)为文本视图而不是其他方式。 – 2009-12-12 18:29:31