打印时NSTextView限制页面宽度

时间:2014-03-24 05:24:43

标签: macos cocoa nstextview text-rendering

我在理解如何在显示和打印时让NSTextView限制页面宽度方面遇到问题。从本质上讲,我希望实现的是,一旦包含文本视图的窗口调整到某个点之后,文本视图将会包含"包装"它的内容。 TextEdit.app基本上完成了我想要实现的目标:

textedit

然而,在我的应用程序中,我根本没有得到这种行为,特别是与文本视图中嵌入的图像有关。例如,当我嵌入一个大图像时,如果窗口太小,图像就会被截断,但是当窗口调整得足够大时,它将以完整大小呈现,但文本视图不会限制内容到页面的宽度:

text view small text view large

当然,这会在打印时产生一些奇怪的结果 - 例如,图像被简单地剪掉:

image cut off print

当调整窗口大小时,它立即显示(包括居中,右对齐或对齐文本)文本视图不会将其宽度约束到一定的厘米数,如标尺。

打印时如何限制NSTextView的宽度?我并不关心边距或将其渲染为UI中的多个页面(虽然我不介意),但是要确保文本视图的内容不超过页面的宽度。根据“页面设置”面板中设置的大小进行打印。 (为了澄清:用户界面可以使文本视图尽可能宽,我只需要在打印时,它横向适合页面,这样就不会被切断。)

我查看了整个文档,并尝试了一些内容,例如NSText maxSize值,但无济于事。

1 个答案:

答案 0 :(得分:1)

我通过查看Apple实际上如何使用TextEdit解决了这个问题,因为urce is available to developers.具体来说,PrintingTextView.m文件就是我所看到的,并且它很容易融入项目。