objective-c - NSPrintOperation从不调用drawRect :

标签 objective-c cocoa printing

我有一个自定义的 NSView 子类,我正在尝试打印它。我有一个 Controller 运行以下代码:

MyCustomView *printableView = [[MyCustomView alloc] init];
NSPrintOperation *po = [NSPrintOperation printOperationWithView:printableView];
[po runOperation];

当我设置断点时,此代码将运行,并且 NSView 中的自定义分页方法(knowsPageRange:rectForPage:)将运行,但 View 的 drawRect: 方法永远不会被调用。它显示打印对话框,但打印的都是空白页。

为什么我的 drawRect: 方法从未被调用?我必须先做一些设置吗?

最佳答案

NSView 的指定初始化器是 -initWithFrame:。虽然使用 -init 初始化 MyCustomView 是可以的,但它的 -init 实现应该调用 [super initWithFrame:someRect] 。是这样做的吗?

换句话说,你的 View 有框架矩形吗?

关于objective-c - NSPrintOperation从不调用drawRect :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608827/

相关文章:

linux - 将网络打印机添加到任何 Linux 系统的批处理文件

objective-c - 导入到 Objc-C 二进制文件中的 Swift 框架无法正确生成 Obj-c header ,错过了 @import Cocoa;

javascript - cocoa /Mac : JavaScript Core crash on the 38th call

ios - 启动图像在不应显示时显示 - iOS

swift - 使用动画隐藏 NSStackView 的 View 项

iphone - 使用 Core Data 与使用 MySQL 有何不同?

android - 如何在android上实现类似 "Printer Discover"的服务发现?

python - print 不适用于 jupyter 笔记本中的多处理模块

即使应用程序关闭,iOS 也会在特定时间安排任务?

ios - 从 iOS 上传图片到 PHP 服务器