我正在编写基于文档的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是我要打印的视图的名称。我的问题是我要在哪里命名该视图?在Interface Builder中?我尝试了“ self”,但引发了错误。我仍在学习可可粉,因此感到困惑。 Interface Builder中的实例只是NSView的实例,它们被命名为View(不是唯一的)。
最佳答案
在文档的.h文件中,添加以下内容:
@interface MyDocument : NSDocument {
IBOutlet NSView *myView;
}
@end
(如果您实际上有一个
NSView
的自定义子类,或者您打算打印的视图是一种更特殊的视图(例如NSTableView
),则可能会将类型更改为该类型,而不是通用NSView
)。然后,在Interface Builder中的nib文件中,最有可能将Control从“文件的所有者”对象拖动到要打印的视图。当您看到视图突出显示并放开时,您应该获得一个弹出菜单,您可以在其中选择
myView
。可以这么说,现在您已经连接了所有电线,因此可以在其余代码中引用该特定视图。