正在打印自定义视图,我遇到了困难 - 希望有人能指出我正确的方向。我已经阅读了所有 Apple 文档的上方,但它只是无法正常工作。我创建了一个简单的程序来测试打印,我继承了 NSView (MainView) 并将以下内容添加到 drawRect 方法中。
@implementation MainView
- (void)drawRect:(NSRect)dirtyRect{
[super drawRect:dirtyRect];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"Hi"];
[myString drawInRect:dirtyRect];
}
我在窗口上创建了一个自定义视图并将其类设置为 MainView。
我运行程序并显示文本 - 到目前为止很好。
当我从下拉菜单中单击打印时,对话框打开并且预览显示整个窗口 - 它包括带有最小、最大按钮的上栏。所以,这是第一个问题,为什么它有整个窗口而不是视图?
其次,我在 MainView 中创建了一个打印例程并将一个下拉菜单项链接到它。
-(IBAction) printTheView{
NSRect r = [self bounds];
[[NSPrintOperation printOperationWithView:self] runOperation];
[self dataWithPDFInsideRect:r];
}
这在打印预览中不会产生任何结果。我尝试了各种方法,但没有任何效果(例如:NSSavePanel 和 beginSheetForDirectory... 方法)。上面的代码是我最后一次尝试。
总之,我有两个问题:1)为什么第一个打印整个窗口,而不是只打印视图?2) 为什么我的自定义打印方法不起作用?
我已经成功打印了一个 NSTextView,但无法缝合来获得这个。任何建议/指针/踢球将不胜感激。
谢谢你。
[编辑] - - -
我让它部分工作。我通过 NSObject 将自定义视图绑定到 printTheView 方法。在 IB 中,我将下拉菜单项绑定到窗口上的自定义视图对象。这行得通。
但是,我不能以相同的方式将窗口上的按钮绑定到打印方法 - 即 CNTL CLICK 并从按钮拖动到对象。
想法?