我正在编写一个基于文档的 Mac OSX 应用程序,并且正在阅读有关使用 NSPrintOperation 的教程(默认情况下,立即在我的应用程序中按 print 会出现错误:
printOperationWithSettings:error: is a subclass responsibility but has not been overridden.
所以我被告知使用以下内容:
- (NSPrintOperation *)printOperationWithSettings:(NSDictionary *)ps error:(NSError **)e;
{
NSPrintInfo *printInfo = [self printInfo];
NSPrintOperation *printOp = [NSPrintOperation printOperationWithView:MyView
printInfo:printInfo];
return printOp;
(其中 MyView 是我想要打印的 View 的名称。我的问题是我在哪里命名该 View ?在 Interface Builder 中?我尝试了“self”,但引发了错误。我”我还在学习 cocoa,所以我很困惑。Interface Builder 中的实例只是 NSView 的,并且被命名为 View(不是唯一的)。有帮助吗?
最佳答案
在文档的 .h 文件中,添加以下内容:
@interface MyDocument : NSDocument {
IBOutlet NSView *myView;
}
@end
(如果您实际上有一个 NSView
的自定义子类,或者您打算打印的 View 是一种更特殊的 View (例如,NSTableView
),您可能会将类型更改为该类型,而不是通用的 NSView
)。
然后,在 Interface Builder 中的 nib 文件中,您很可能按住 Control 键并从“文件所有者”对象拖动到要打印的 View 。当您看到突出显示的 View 并放开时,您应该会看到一个弹出菜单,您可以在其中选择myView
。现在您已经连接好了电线,可以这么说,这样您就可以在代码的其余部分中引用该特定 View 。
关于objective-c - 在 Cocoa 中使用 NSPrintOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721198/