我有一個簡單的程序,用於確保打印作品。打印打印整個窗口,而不是查看
-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