NSPrintOperation View Пусто
Я все еще новичок в OSX / Swift 3.1, но я немного озадачен, я построил систему эпоса и все работает нормально, я просто застрял с распечаткой квитанции.
Я собрал XIB View и соответствующий файл swift для него показан ниже
class Receipt: NSView {
let currentOrder = NewOrder.instance
@IBOutlet var view: NSView!
@IBOutlet weak var facebookString: NSTextField!
@IBOutlet weak var websiteString: NSTextField!
@IBOutlet weak var totalString: NSTextField!
@IBOutlet weak var vatString: NSTextField!
@IBOutlet weak var subTotalString: NSTextField!
@IBOutlet weak var CashierName: NSTextField!
@IBOutlet weak var orderNumber: NSTextField!
@IBOutlet weak var date: NSTextField!
@IBOutlet weak var itemList: NSTextField!
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
Bundle.main.loadNibNamed("ReceiptView", owner: self, topLevelObjects: nil)
let contentFrame = NSMakeRect(0, 0, frame.size.width, frame.size.height)
self.view.frame = contentFrame
self.addSubview(self.view)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
subTotalString.stringValue = "Hello World"
view.draw(dirtyRect)
subTotalString.draw(dirtyRect)
}
}
Я добавил имя пера в ссылку XIB, загрузил новый класс Receipt() и добавил представление в NSPrintOperation.
let order = NewOrder.instance
let sview = Receipt()
let printer = NSPrinter(name: "EPSON TM-T88V");
let printData = NSPrintInfo()
printData.printer = printer!
let printerName = printer?.name
let docSize = NSMakeSize(CGFloat(204.0), CGFloat(200));
let res = "180x180dpi";
let speed = "Auto";
let blank = "Off";
let paperCut = "DocFeedCut";
let chashDrwr1 = "After";
let chashDrwr2 = "Off";
let buzzerControl = "Off";
let buzzerPattern = "Internal";
let buzzerRepeat = "1";
let data = TMPrintSupport.tmSetJobTicket(printData, printerName: printerName, documentSize: docSize, resolution: res, speed: speed, blank: blank, paperCut: paperCut, chashDrwr1: chashDrwr1, chashDrwr2: chashDrwr2, buzzerControl: buzzerControl, buzzerPattern: buzzerPattern, buzzerRepeat: buzzerRepeat)
let po = NSPrintOperation(view: sview.view, printInfo: printData)
// po.showsPrintPanel = false
po.canSpawnSeparateThread = true
po.cleanUp()
return po.run()
Когда отображается вид печати, он пустой, не содержит вид и пустой, я также тестирую распечатанный текст, а печать просто пустая.
Любые предложения приветствуются, спасибо