如何在可可,swift中设置打印?

VYT*_*VYT 5 printing cocoa swift

我通过在mainController中为此NSView的按钮分配以下操作,为NSPopover的自定义NSView创建了打印功能:

@IBOutlet var plasmidMapIBOutlet: PlasmidMapView!

@IBAction func actionPrintfMap(sender: AnyObject)
{
    plasmidMapIBOutlet.print(sender)
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但打印窗口没有纸张尺寸方向选项,请参见下面的截图. 在此输入图像描述

  1. 如何在打印窗口中获取这些选项?
  2. 并且,如何使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)
 }
Run Code Online (Sandbox Code Playgroud)

但是,我还有问题.从上面的代码,我可以定向(最后,ShowsOrientation),但不能同时纸型和方向.如何管理ShowsPaperSize和ShowsOrientation?

VYT*_*VYT 3

最后我找到了答案,写起来很简单,但从苹果文档中看并不明显。

    operation.printPanel.options.insert(NSPrintPanelOptions.showsPaperSize)
    operation.printPanel.options.insert(NSPrintPanelOptions.showsOrientation)
Run Code Online (Sandbox Code Playgroud)