【问题标题】:How to setup printing in cocoa, swift?如何在可可中快速设置打印?
【发布时间】:2016-09-21 20:45:15
【问题描述】:

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

@IBOutlet var plasmidMapIBOutlet: PlasmidMapView!

@IBAction func actionPrintfMap(sender: AnyObject)
{
    plasmidMapIBOutlet.print(sender)
}

它可以工作,但是打印窗口没有Paper SizeOrientation选项,请看下面的截图。

  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)
 }

但是,我还是有问题。从上面的代码中,我可以获得only 方向(最后一个,ShowsOrientation),但不能同时获得 PaperSize 和 Orientation。如何同时管理 ShowsPaperSize 和 ShowsOrientation?

【问题讨论】:

  • @Willeke 是的,我已经更新了问题。现在我可以拥有一个,但不能同时拥有 ShowsPaperSize 和 ShowsOrientation 选项。我怎样才能两者兼得?

标签: swift cocoa printing


【解决方案1】:

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

    operation.printPanel.options.insert(NSPrintPanelOptions.showsPaperSize)
    operation.printPanel.options.insert(NSPrintPanelOptions.showsOrientation)

【讨论】:

    【解决方案2】:

    最初贴出的代码中的问题是options 被分配了两次,因此分配的第一个值ShowsPaperSize 被值ShowsOrientation 覆盖。这就是为什么您只能在对话框中看到 ShowsOrientation 选项的原因。

    通过使用多个insert 操作,您是在添加选项而不是每次都覆盖。你也可以这样做,我认为这样更好:

    operation.printPanel.options.insert([.showsPaperSize, .showsOrientation])
    

    最后,它还可以“设置”选项,并通过提供现有选项作为第一个数组值,实现追加的效果:

    operation.printPanel.options = [
        operation.printPanel.options,
        .showsPaperSize,
        .showsOrientation
    ]
    

    (第一个数组元素operation.printPanel.options表示旧选项在新选项列表中提供。)

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2017-06-09
      • 1970-01-01
      • 2016-02-07
      • 2010-11-08
      相关资源
      最近更新 更多