如何设置用于打印的NSView?

如何设置用于打印的NSView?,nsview,nsdocument,nsprintoperation,Nsview,Nsdocument,Nsprintoperation,如何设置NSView进行打印?例如,假设我有一个视图,在该视图中,我覆盖了layout(),以便像文本一样进行布局,根据视图的宽度从一行流向下一行。任何东西都不应该缩放,视图需要变得更高(可能需要更多页面),因为它变得更窄 我需要采取哪些步骤才能使打印预览工作正常,然后实际打印这样的文档?例如,我需要调整视图的大小以适合页面。我应该在什么时候设置边界,从哪里获得页面大小的信息?是打印当前屏幕上的视图,还是使用相同的数据创建新视图 我读过,但我认为drawRect比我想要的要晚。要打印屏幕上的内容

如何设置NSView进行打印?例如,假设我有一个视图,在该视图中,我覆盖了
layout()
,以便像文本一样进行布局,根据视图的宽度从一行流向下一行。任何东西都不应该缩放,视图需要变得更高(可能需要更多页面),因为它变得更窄

我需要采取哪些步骤才能使打印预览工作正常,然后实际打印这样的文档?例如,我需要调整视图的大小以适合页面。我应该在什么时候设置边界,从哪里获得页面大小的信息?是打印当前屏幕上的视图,还是使用相同的数据创建新视图


我读过,但我认为
drawRect
比我想要的要晚。

要打印屏幕上的内容还是要重新格式化以便打印?您覆盖了NSView的哪些打印方法?目前我没有覆盖任何打印方法。不知道从哪里开始。我想我想重新格式化以便打印。基本上我只想知道1。如何选择打印哪个视图(当前它打印整个窗口)和2。何时何地设置该视图的边框以匹配选定的打印机设置(字母、A4、自定义等)1。在视图或viewcontroller中执行操作方法
print:
。2.使用屏幕外视图进行打印可能更容易。看见