我已经为NSPopover的自定义NSView创建了打印功能,通过在mainController中将以下操作分配给该NSView的按钮:
@IBOutlet var plasmidMapIBOutlet: PlasmidMapView!
@IBAction func actionPrintfMap(sender: AnyObject)
{
plasmidMapIBOutlet.print(sender)
}
它正在工作,但打印窗口没有纸张大小和方向选项,请参见下面的截图。
![enter image description here](https://istack.dev59.com/AFiYj.webp)
- 我该怎么做才能在打印窗口中获得这些选项?
- 还有,如何使NSView适合可打印区域?现在它不适合。
我已经找出了一些要点,但并不完全清楚。所以,我可以通过以下代码设置打印:
@IBAction func actionPrintMap(sender: AnyObject)
{
let printInfo = NSPrintInfo.sharedPrintInfo()
let operation: NSPrintOperation = NSPrintOperation(view: plasmidMapIBOutlet, printInfo: printInfo)
operation.printPanel.options = NSPrintPanelOptions.ShowsPaperSize
operation.printPanel.options = NSPrintPanelOptions.ShowsOrientation
operation.runOperation()
//plasmidMapIBOutlet.print(sender)
}
但是,我仍然有问题。从上面的代码中,我只能获取方向(最后一个ShowsOrientation),而不能同时获取纸张大小和方向。我该如何处理ShowsPaperSize和ShowsOrientation?