我的OS应用程序支持10.9-10.11。通过添加如下打印附件视图,我尝试向打印操作添加一些选项:
MyPrintView *printView = [[MyPrintView alloc] initWithData: [self myData]];
NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView: printView];
NSPrintPanel *printPanel = [printOperation printPanel];
[printPanel addAccessoryController:[[MyPrintAccessory alloc] init]];
if (printOperation)
{
[printOperation runOperationModalForWindow:_window delegate:_window didRunSelector:nil contextInfo:nil];
}附件视图由控制器定义。
@interface MyPrintAccessory : NSViewController <NSPrintPanelAccessorizing>以及在xib文件中定义的视图。
在El Capitan中一切正常工作,但在约塞米蒂和小牛中,打印面板让我在弹出按钮中选择我的附件,如果我选择它,什么都不会显示,应该显示附件的空间仍然是空的。编译和运行时都不会生成错误消息。
有没有人对如何解决这一问题有一个提示,或者有一个提示,如何寻找这一行为的原因?
发布于 2018-03-25 13:16:29
我也有同样的问题。我通过将选项“使用自动布局”设置为关闭打印附件视图nib文件来解决这个问题。
发布于 2016-04-11 14:44:15
我的应用程序做了同样的事情,并在10.10中工作
这里有一个细微的区别,但首先要说明:我的应用程序是一个NSDocument-based应用程序。打印时,我从NSPrintInfo中获取NSDocument,并将其提供给我的打印方法(您在问题中嵌入的代码)。
看起来是这样的:
[printView requestPrintWithPrintInfo:[doc printInfo]];然后,我没有调用-printOperationWithView:,而是调用-printOperationWithView:printInfo:,并传递来自发送方的printInfo
在苹果的文档中,应该在以下情况下调用-printOperationWithView:
/*稍微方便一些,以便在应用程序的全局NSPrintInfo合适时使用。这些方法中的每一个都调用NSPrintInfo sharedPrintInfo,然后调用上面列出的同名方法。
在我看来,它无论如何都会起作用,但就像我说的,这似乎是我们代码中唯一的区别
https://stackoverflow.com/questions/36549103
复制相似问题