在 NSScrollView 中的 NSView 顶部填充

Geo*_*rge 2 macos cocoa

我有一个 NSView 作为 NSScrollView 的文档。我想在视图的可见部分的顶部和底部具有填充的几个像素,而不管其中滚轮被放置(不只是在如所描述的文档的顶部和底部在这里)。有关执行此操作的应用程序示例,请查看 Terminal.app。无论文本的背景颜色如何,顶部的两行可见像素始终是默认背景颜色。

我知道我可以简单地将所有东西都画两个像素,并在文档可见矩形的顶部和底部绘制一个矩形,但这需要更改很多我没有编写的复杂代码。欢迎更简单的想法!

Jos*_*zzi 5

您链接的问题的答案实际上也是这个问题的一个很好的解决方案。事实上,如果您的视图不是 NSTextView,我会说它更容易实现。

具体来说:使您的实际文档视图成为其他视图的子视图,在边缘留出空间并使该视图成为滚动视图的文档视图。如果您的内容视图(您希望填充的那个)改变了大小,让您的“填充视图”观察它的框架变化并调整大小以保持填充。

2015年更新

从 10.10 开始,内容插入已添加到 NSScrollView,使我的旧答案过时了。