我正在编写基于文档的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。可以这么说,现在您已经连接了所有电线,因此可以在其余代码中引用该特定视图。

10-05 20:24