2017-07-24 47 views
0

與此代碼我可以打印PDF文件:nsprintoperation - 檢查哪些用戶已選擇

let dictDocuments = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]) 
let completePath = dictDocuments.appendingPathComponent("test.pdf") 
let pdfDocument = PDFDocument(url: completePath!) 

let printInfoDict = NSMutableDictionary(dictionary: NSPrintInfo.shared().dictionary()) 
printInfoDict.setObject(NSPrintSpoolJob, forKey: NSPrintJobDisposition as NSCopying) 
let printInfo = NSPrintInfo(dictionary: printInfoDict as! [String : Any]) 
printInfo.isHorizontallyCentered = true 
printInfo.isVerticallyCentered = true 
printInfo.scalingFactor = 1.5 


let printOp = pdfDocument!.printOperation(for: printInfo, scalingMode: .pageScaleNone, autoRotate: true)! 
printOp.runModal(for: self.view.window!, delegate: self, didRun: nil, contextInfo: nil) 

我可以檢查,用戶在打印面板選擇了哪個按鈕? (取消或打印)

回答

0

documentation

的方法,由didRunSelector參數指定必須具有以下特徵:

func printOperationDidRun(_ printOperation NSPrintOperation, success: Bool, contextInfo: UnsafeMutableRawPointer?) 

成功的值是true如果打印操作跑到無需取消或錯誤完成,否則返回false

如果您發送canSpawnSeparateThreadNSPrintOperation物體的true參數,然後在runOperationModalForWindow:delegate:didRunSelector:contextInfo:後續調用中指定的代表可在催生,非主線程傳遞消息。

+0

是的,我路上這個文件。但我不知道如何使用它:( – Ghost108

+0

而不是'... didRun:無...'傳遞'selector'' ... didRun:#selector(printOperationDidRun(_:success:contextInfo :))和 – vadian

+0

ah okay,謝謝。我試過'didRun:printOperation ...',但是「selector way」對我來說是新的 – Ghost108