swift - 如何在 cocoa 中快速设置打印?

标签 swift cocoa printing

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

@IBOutlet var plasmidMapIBOutlet: PlasmidMapView!

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

它工作正常,但打印窗口没有纸张大小方向 选项,请参见下面的屏幕截图。 enter image description here

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

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

最佳答案

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

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

关于swift - 如何在 cocoa 中快速设置打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37416923/

相关文章:

arrays - 如何修复 JSON 解析应用程序中的 'Index Out Of Range' 错误

swift - 为什么indexPath和IndexPath都不被接受?

cocoa - applicationDidFinishLaunching 未调用,使用 Storyboards 和 swift3

objective-c - 如何检测菜单栏应用程序中的鼠标位置?

css - 我的 'zebra striped' 表不打印条纹

Swift 4 切换到新的观察 API

cocoa - 为什么我无法使用 NSURL (swift) 获得正确的路径

ios - UIPrintInteractionController (Swift) 最多可以执行多少次打印?

javascript - AngularJs 元素没有出现在打印对话中?

ios - Swift 将 sizeof 与 Int32 数组一起使用