0
我有一個自定義的NSView子類,我試圖打印。我有一個控制器運行下面的代碼:NSPrintOperation從來沒有調用drawRect:
MyCustomView *printableView = [[MyCustomView alloc] init];
NSPrintOperation *po = [NSPrintOperation printOperationWithView:printableView];
[po runOperation];
當我設置斷點,該代碼被執行,並在一個NSView自定義分頁方法(knowsPageRange:
和rectForPage:
)得到運行,但視圖的drawRect:
方法不會被調用。它顯示打印對話框,但它打印的所有內容都是空白頁。
爲什麼我的drawRect:
方法永遠不會被調用?我需要先做一些設置嗎?
是的,它的init會調用'[super initWithFrame:someRect]',但它的框架稍後會在'rectForPage:'中修改以適應頁面大小。 –
在'-rectForPage:'期間修改視圖框架似乎很奇怪。你有沒有嘗試給它一些合理的框架開始,而不是修改它?另外,你有沒有嘗試過實現自定義分頁,只是爲了看看會發生什麼? –
事實證明,我的自定義子視圖有一個名爲「frameSize」的屬性,它干擾了同名的現有函數,導致它陷入零。你的回答幫我找到了問題!謝謝! –