我有一个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];
打印对话框与标题栏一起显示:
标题栏出现并不好,但可以接受。
如果我选择“打印”或“取消”,对话框和标题栏都会消失。
但如果我选择打印到PDF,则标题栏仍然存在且根本无法删除:
如何摆脱标题栏?
答案 0 :(得分:0)
对于打印面板而言,它似乎更自然地作为单独的模态窗口而不是来自不可见窗口的纸张,并且它可能不会导致菜单栏问题。
我相信NSPrintOperation的runOperation
使用模态窗口(并且在完成之前也会阻塞),你试过吗?