如何解决使用NSView.printView打印NSOutlineView的异常及替代方案
NSOutlineView打印效果异常问题
当前实现逻辑
- 需求:打印当前窗口内作为子视图存在的NSOutlineView控件
- 初步方案:利用NSView原生提供的
printView打印接口,在AppDelegate中编写触发打印的IBAction方法,直接调用目标outlineView实例的打印方法,代码实现为:
@IBAction func doPrint(_ sender: Any?) { globalOutlineCntrl?.outlineView.printView(self) }
- 执行表现:当承载NSOutlineView的窗口正常显示在屏幕上时触发打印操作,整个代码运行流程无异常报错,但最终打印输出的内容和屏幕上的显示效果存在明显偏差
效果对比
- 屏幕端正常显示的NSOutlineView界面:

- 实际异常的打印输出结果:

待解答问题
- 是否可以通过调整现有逻辑,借助
NSView.printView接口实现NSOutlineView的正确打印 - 如果直接调用
printView的方案无法达到预期,有哪些可行方式可以打印作为窗口子视图的NSOutlineView
内容的提问来源于stack exchange,提问作者alangh
相关产品推荐
相关产品推荐

