gpt4 book ai didi

cocoa - 用于 View 和 PDF 生成的通用 CoreGraphics 绘图代码应该放在哪里?

转载 作者:行者123 更新时间:2023-12-03 16:29:39 26 4
gpt4 key购买 nike

我有一个关于 CoreGraphics 绘图代码放置的问题。我有一个 C 结构,它代表我的模型,并且有一个自定义 View 类。这个自定义 View 类实现了一个drawRect并使用CoreGraphics来绘制它。

我现在还需要能够从此 View 生成 PDF 并将其导出。它使用与 View 完全相同的绘图代码。

我现在的解决方案是在自定义 View 类中使用单独的绘图方法,并在 drawRect 方法和我的方法中使用此方法来生成 PDF。

我不确定这是否是一个干净的解决方案,因为 View 有一个与在屏幕上绘图无关的功能。然而,使用新的自定义类作为我的 PDF 生成器意味着重复我的绘图代码。

有没有一种干净的方法来组织这个通用绘图代码?人们可以使用辅助对象并将其作为实例变量,但这会使其有点臃肿。

最佳答案

Cocoa’s printing architecture打印时自动使用 View 绘图代码,打印可用于创建 PDF 文件。这意味着您只需将自定义 View 绘制代码放入 -drawRect 中,然后执行如下操作:

NSView *targetView = …;
NSString *pdfFilePath = …;
NSMutableData *pdfData = [NSMutableData data];
NSPrintOperation *printOp = [NSPrintOperation PDFOperationWithView:targetView
insideRect:[targetView bounds]
toData:pdfData];
if ([printOp runOperation]) {
[pdfData writeToFile:pdfFilePath atomically:YES];
}

关于cocoa - 用于 View 和 PDF 生成的通用 CoreGraphics 绘图代码应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com