NSDocument printOperationWithSettings不显示所有页面

时间:2016-06-20 22:10:03

标签: cocoa nsdocument nsprintoperation

NSDocument子类中,具有此功能:

override func printOperationWithSettings(printSettings: [String : AnyObject]) throws -> NSPrintOperation {
    let printInfo: NSPrintInfo = self.printInfo
    var pageSize = printInfo.paperSize
    pageSize.width -= printInfo.leftMargin + printInfo.rightMargin
    pageSize.height -= printInfo.topMargin + printInfo.bottomMargin
    pageSize.width = pageSize.width * 2
    pageSize.height = pageSize.height * 2
    let myPage = MyPage(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: pageSize))
    let printOperation = NSPrintOperation(view: myPage, printInfo: printInfo)
    return printOperation
}

对于此测试,MyPage是一个只绘制椭圆的NSView子类。

class MyPage: NSView {

override var flipped: Bool {
    return true
}

override func drawRect(dirtyRect: NSRect) {
    super.drawRect(dirtyRect)

    NSColor.greenColor().set() // choose color
    let figure = NSBezierPath() // container for line(s)
    figure.appendBezierPathWithOvalInRect(self.frame)
    figure.stroke()  // draw line(s)
}    
}

我希望这在打印面板中显示四页,但它只显示两页,相当于椭圆形的左上角和左下角。无论我创建myPage的框架有多宽,都只显示最左边的页面。有什么想法吗?谢谢!

0 个答案:

没有答案