Swift 4 - NSGraphicsContext.setCurrent() 没有成员 'setCurrent'

标签 swift pdf swift4 quartz-graphics

因此,我尝试使用与 this answer 类似的方法将文本覆盖到 PDF 文档上。 .

我使用一个函数来设置当前的图形上下文,就像文档中所说的那样。

let pdfPage: CGPDFPage = pdf.page(at: 1)!
            //var pageRect = pdfPage.getBoxRect(CGPDFBox.mediaBox)
            //print(pageRect)

            let doc: PDFDocument = PDFDocument(url: pdfURL!)!
            let page: PDFPage = doc.page(at: 0)!
            var mediaBox: CGRect = page.bounds(for: .mediaBox)

            let context = CGContext(destinationURL as CFURL, mediaBox: &mediaBox, nil)
            let graphicsContext = NSGraphicsContext(cgContext: context!, flipped: false)
            NSGraphicsContext.setCurrent(graphicsContext)

            context!.beginPDFPage(nil)

            page.draw(with: .mediaBox, to: context!)

            let style = NSMutableParagraphStyle()
            style.alignment = .center

            let richText = NSAttributedString(string: "Hello, world!", attributes: [
                NSAttributedStringKey.font: NSFont.systemFont(ofSize: 64),
                NSAttributedStringKey.foregroundColor: NSColor.red,
                NSAttributedStringKey.paragraphStyle: style
                ])

            let richTextBounds = richText.size()
            let point = CGPoint(x: mediaBox.midX - richTextBounds.width / 2, y: mediaBox.midY - richTextBounds.height / 2)

            context!.saveGState()
            do {
                context!.translateBy(x: point.x, y: point.y)
                context!.rotate(by: .pi / 5)
                richText.draw(at: .zero)
            }
            context!.restoreGState()



            context!.endPDFPage()
            NSGraphicsContext.setCurrent(nil)
            context?.closePDF()
        }

还有一行:

NSGraphicsContext.setCurrent(graphicsContext)

抛出一个错误,显示“类型'NSGraphicsContext'没有成员'setCurrent'”

有人对发生的事情有任何想法吗?我在框架方面缺少什么吗?

最佳答案

您需要使用current类属性。

NSGraphicsContext.current = graphicsContext

关于Swift 4 - NSGraphicsContext.setCurrent() 没有成员 'setCurrent',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48592074/

相关文章:

pdf - 使用 Ghostscript 保留输入大小以将 EPS 转换为 PDF

ios - 如何在 firestore 数据库中使用 swift 更新数组中的对象( map )?

ios - 从 Swift 4 中的后台线程调用并运行 Firebase 4 的 UI API

macos - DocumentType 不使用 Swift 在 Xcode 6 Beta 5 中映射

java - PDF 到字节数组,反之亦然

ios - 升级到 XCode 7 后在 Bridging Header 中找不到头文件

pdf - 使用 iText API 为 PDF 文件中的所有书签创建目的地

ios - 在 SWIFT 4 中将文本字段限制为仅正整数

ios - 如何为 sprite kit 节点组合图像

swift - 从 library swift 的 View 中选择几张图像