如何在Cocoa打印对话框中获取“页面属性”选项?

时间:2012-01-12 18:56:17

标签: cocoa printing nsprintoperation

我正在编写的程序在OS X 10.5 Leopard下运行。我的目标是其基本SDK和部署目标都设置为Mac OS X 10.5。当我启动打印时,我的打印对话框不显示“页面属性”选项,用户可以在其中选择页面大小和方向。

No Page Attributes

在Leopard下运行的其他程序会显示此选项:

Yes Page Attributes

以下是启动打印的代码:

-(void)print {
    NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
    TemperaturePressurePrintView *printView = [[TemperaturePressurePrintView alloc] initWithFrequencies:frequencies];
    if (printView) {
        [[NSPrintOperation printOperationWithView:printView printInfo:printInfo] runOperation];
        [printView release];
    }
}

如何让页面属性显示在我的打印对话框中?

2 个答案:

答案 0 :(得分:16)

搜索是一件很难的事情,因为结果主要是关于使用打印面板,而不是编程。我终于找到了一条线索on Cocoabuilder,其中提到了NSPrintPanelOptionsNSPrintPanel的{​​{1}}方法。

此代码完成了我的需要:

-setOptions:

答案 1 :(得分:0)

在最初的答案之后几年,macOS Sierra似乎已经在具有NSPrintPanelShowsPageSetupAccessory' NSPrintPanelShowsPageSetupAccessory'选项集。无效的值(例如可笑的大规模)会导致崩溃而不是显示警报表。

幸运的是有一种解决方法。使用

NSPrintPanelShowsPaperSize | NSPrintPanelShowsOrientation | NSPrintPanelShowsScaling

似乎导致一个工作正常的面板。