1

我想在 NSScrollView 内的 NSTextView 周围提供几个像素的填充。我已经查看了这篇文章,并且使用 setTextContainerInset 可以解决左右边距和底部边距的问题。但是一旦文本滚动,顶部缓冲区就会丢失。与覆盖 textContainerOrigin 相同。该帖子中的另一个答案指出:

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

但是如果我这样做(使用,比如说一个 NSBox),内容就不再滚动了。我是否遗漏了有关该特定技巧的某些内容,还是人们可以建议其他任何技巧?

4

2 回答 2

1

您的报价中似乎缺少一个步骤。您需要确保您的新文档视图跟踪文本视图框架和大小本身的变化以适应。您可以使用-setPostsFrameChangedNotifications:在您的文本视图上打开 NSViewFrameDidChangeNotification ,然后让您的新文档视图监听来自文本视图的通知。

于 2010-08-24T21:48:37.060 回答
1

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

于 2010-11-22T11:53:00.567 回答