2016-05-24 2 views
5

Я сделал функцию печати для пользовательского NSView из NSPopover по совершающей переуступку следующих действий на кнопку для этого NSView в mainController:Как настроить печать в какао, быстро?

@IBOutlet var plasmidMapIBOutlet: PlasmidMapView! 

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

Это работает, но окно печати не имеет опций для Paper Size и Ориентация, см. Снимок экрана ниже. 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?

+0

ли вы читали [Печать Руководство по программированию для Mac] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Printing/osxp_aboutprinting/osxp_aboutprt.html#//apple_ref/doc/UID/10000083-SW1)? – Willeke

+0

@ Виллеке Да, я обновил вопросы. Теперь у меня есть один, но не оба варианта ShowsPaperSize и ShowsOrientation. Как я могу взять оба? – VYT

ответ

2

Наконец-то я нашел ответ, который прост в написании, но это не совсем очевидно из документации Apple.

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