如何删除与打印对话框一起出现的标题栏

时间:2017-03-01 11:22:54

标签: macos printing

我有一个OpenGL全屏Mac OS应用程序。使用window样式创建NSBorderlessWindowMask

NSWindow *window = [[NSWindow alloc] initWithContentRect:rect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];

我需要从应用程序打印。

我的打印代码看起来像这样:

NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
printInfo.orientation = NSPaperOrientationLandscape;
printInfo.verticalPagination = NSFitPagination;
printInfo.horizontalPagination = NSFitPagination;
printInfo.topMargin = 0;
printInfo.bottomMargin = 0;
printInfo.leftMargin = 0;
printInfo.rightMargin = 0;
[printInfo setHorizontallyCentered:YES];
[printInfo setVerticallyCentered:NO];
NSPrintOperation *op = [NSPrintOperation printOperationWithView:printingView printInfo:printInfo];
[printingView release];

[op runOperationModalForWindow:self.window delegate:self didRunSelector:@selector(printOperationDidRun:success:contextInfo:) contextInfo:nil];

enter image description here

打印对话框与标题栏一起显示:

enter image description here

标题栏出现并不好,但可以接受。

如果我选择“打印”或“取消”,对话框和标题栏都会消失。

但如果我选择打印到PDF,则标题栏仍然存在且根本无法删除:

enter image description here

如何摆脱标题栏?

1 个答案:

答案 0 :(得分:0)

对于打印面板而言,它似乎更自然地作为单独的模态窗口而不是来自不可见窗口的纸张,并且它可能不会导致菜单栏问题。 我相信NSPrintOperation的runOperation使用模态窗口(并且在完成之前也会阻塞),你试过吗?