首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nsprintoperation检查用户选择了什么

nsprintoperation检查用户选择了什么
EN

Stack Overflow用户
提问于 2017-07-24 15:54:59
回答 2查看 406关注 0票数 0

使用此代码,我可以打印一个pdf文件:

代码语言:javascript
复制
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)

我可以检查一下,用户在打印面板中选择了哪个按钮?(取消或打印)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-24 16:19:01

来自文档

didRunSelector参数指定的方法必须具有以下签名: func printOperationDidRun(_ printOperation NSPrintOperation,success: Bool,contextInfo: UnsafeMutableRawPointer?) 如果打印操作在没有取消或错误的情况下运行到完成,则成功的值为true,否则为false。 如果将canSpawnSeparateThread发送到带有true参数的NSPrintOperation对象,则在随后调用runOperationModalForWindow:delegate:didRunSelector:contextInfo:时指定的委托可能会在该生成的非主线程中传递消息。

票数 0
EN

Stack Overflow用户

发布于 2020-04-16 18:38:23

如欲迅速5.1:

代码语言:javascript
复制
// prepare printOp
...

{
        //was: printOp.run()

        if let w = NSApp.mainWindow{
            let selector = #selector(printOperationDidRun(printOperation: success: contextInfo:))
            printOp.runModal(for: w, delegate: self,
                             didRun: selector,
                             contextInfo: nil)
        }
    }

    // apple docs:
    // - (void)printOperationDidRun:(NSPrintOperation *)printOperation  success:(BOOL)success  contextInfo:(void *)contextInfo

     @objc func printOperationDidRun( printOperation: NSPrintOperation,
                                      success: Bool,
                                      contextInfo: UnsafeMutableRawPointer?){
        // use callback..

    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45285062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档