在NSScrollView中填充NSTextView

时间:2010-08-24 18:02:15

标签: cocoa nstextview nsscrollview

我想在NSScrollView内部的NSTextView周围提供一些填充像素。我已经回顾了this post并使用setTextContainerInset为左边距,右边距和下边距做了诀窍。但是一旦文本滚动,顶部缓冲区就会丢失。覆盖textContainerOrigin也是如此。该帖中的另一个答案是:

  

TextEdit的工作方式(在Wrap to Page模式下)是将文本视图放在较大的视图中,并将该较大的视图设置为滚动视图的文档视图。

但如果我这样做(使用,比如NSBox),内容就不再滚动了。我是否遗漏了有关该特定技巧的内容,或者是否有人可以提出的其他技巧?

2 个答案:

答案 0 :(得分:1)

您的报价中似乎缺少一个步骤。您需要确保新文档视图跟踪文本视图框架中的更改并调整其大小以适应。您可以使用-setPostsFrameChangedNotifications:在文本视图中启用NSViewFrameDidChangeNotification,然后让新文档视图侦听文本视图中的通知。

答案 1 :(得分:1)

顺便说一句,我最终通过继承NSClipView,覆盖setFrame:,setFrameOrigin:和setFrameSize来完成此操作,并在这些方法中破解原点和宽度以添加我的填充。