【发布时间】:2015-10-30 13:55:43
【问题描述】:
我有一个简单的程序,用于确保打印正常。
- 为控制器子类化 NSObject,“ViewController。
-子类化NSView、View
在窗口中添加了custom view,将类设置为View。
为View 指定ViewController 代表。
在IB 中添加对象,将类设置为ViewController。
将IBOutlet 添加到ViewController 的Delegate 部分,将其连接到窗口上的自定义视图。
在 View 中,有一个简单的 [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];
}
向窗口添加了一个按钮,将其链接到ViewController 中的IBAction 方法:
-(IBAction)printToPDF:(id)sender{
[view printPDF];
}
在ViewController我有:
IBOutlet View *view;
这行得通!那么,为什么默认的“打印”菜单项会打印整个窗口呢?
【问题讨论】:
标签: cocoa