打印打印整个窗口,而不是查看
我有一个简单的程序,用于确保打印作品。打印打印整个窗口,而不是查看
-Subclassed NSObject
的控制器,“ViewController
。
-Subclassed NSView
,View
增加了custom view
到窗口,设置类View
。
制造ViewController
委托View
。 在IB
添加对象,设置类别为ViewController
。
添加IBOutlet
代表部分ViewController
,将其连接到窗口上的自定义视图。
在视图中,有一个简单的[myString drawInRect: rect]
,其中myString
在init中定义为@"Hi"
。
当我运行时,程序在视图中打印"Hi"
。当我点击“Print
”菜单项时,打印预览显示整个窗口。
更多:我有一个早期的测试程序没有打印代码,我运行它,打印预览只显示视图。我已经通过了两个代码,并且找不到区别,所以我迷失在为什么一个人在工作而另一个不在。
是否有人知道为什么打印预览会显示整个窗口而不是视图?
[编辑] ----- 我也创建了一个非常简单的程序来检查并有相同的问题。 子类NSView
,MainView
添加自定义视图窗口中,设置类MainView
新增[str drawInRect: dirtyRect withAttributes:nil];
(注; NSString *str = @"Hello";
)。
[详细] -------
我添加了一个打印方法如下所述NSView
对象:
-(void)printPDF{
NSRect r = [self bounds];
[[NSPrintOperation printOperationWithView:self] runOperation];
[self dataWithPDFInsideRect:r];
}
添加一个按钮,窗口,它连接到一个IBAction
方法在ViewController
:
-(IBAction)printToPDF:(id)sender{
[view printPDF];
}
在ViewController
我有:
IBOutlet View *view;
This Works!那么,为什么默认的“打印”菜单项打印整个窗口?
默认情况下,您不必编写任何打印代码并且打印正常。但是,它提供了默认行为(又名,打印整个窗口)。
如果你想要自定义打印行为,你必须编写自己的打印方法(就像你在非常简单的程序中那样)。并且您可以将默认打印菜单项链接到您自己的打印方法。
哇,我忘了这个问题仍然活跃(未答复),我放弃了任何人的回应。感谢您的回应,我的解决方案正是您所建议的 - 我创建了自定义打印方法并将打印菜单项链接到自定义方法。 – littleDrummerBoy 2015-11-02 13:25:22