2016-10-04 18 views
2

Xcode Cocoaアプリケーションテンプレートから派生したアプリケーションがありますが、これはEl Capitanで正しく印刷されますが、Sierraのシャドーボックスですべて丸みを帯びています。マージン値を(viewControllerのviewDidLoadの共有インスタンス内で)より大きな正の値に変更すると、マージンは大きくなりますが、ゼロに減らすと余白とシャドウボックスが残ります。イメージは、印刷プレビューのスクリーンショットです。私は、PDFが印刷されたページ全体を占めていることに戻りたいと思います。 File/Printのメニューを見ると、firstResponder print:が実行されます。この関数をオーバーライドする必要がありますか?しかし、以下のコードが実行されていない場合、これはどのような効果がありますか?NSPrintInfoがmacOSで変更されましたSierra

NSPrintInfo *PageDefaults = [NSPrintInfo sharedPrintInfo]; 
[PageDefaults setBottomMargin:0]; 
[PageDefaults setLeftMargin:0]; 
[PageDefaults setRightMargin:0]; 
[PageDefaults setTopMargin:1]; 

enter image description here

私は、120に上記のコードでの印刷の変化上部と左余白を増やす場合: enter image description here

をストーリーボードは、私が唯一のPDFビューコントロールを使用していますことを示していますviewControllerシーン全体を塗りつぶします enter image description here

最後に、画面上のviewControllerは次のように表示されます。.10通話printWithInfo:autoRotate:pageScaling:

+0

どのように印刷しますか?ビュークラスが変更された可能性があります。私の単純なテストアプリケーションは境界線を印刷しません。 – Willeke

+0

Xcode 8で昨日作ったような、簡単なテストアプリで動作するとは言えませんが、私のアプリは元々2〜3年前にXcode 5や6で作成されました!うまくいけば、上の私の編集は問題をより明確にします。 – Nick

+0

プロジェクトはOS X 10.10およびXcode 6.4で作成されました。私はPDFViewを試してみます。これは10.12のPDFViewの唯一の問題ではありません。 – Willeke

答えて

1

-[PDFView print:]enter image description here。 10.12 -[PDFView print:]printOperationWithView:を呼び出し、背景を印刷します。ソリューション:PDFViewのサブクラスを作成し、print:をオーバーライドし、printWithInfo:autoRotate:pageScaling:を呼び出します。

- (void)print:(id)sender { 
    [self printWithInfo:[NSPrintInfo sharedPrintInfo] autoRotate:YES pageScaling:kPDFPrintPageScaleToFit]; 
} 
+0

絶対完璧です!ありがとうございました。 – Nick

関連する問題