objective-c - 在 Cocoa 中使用 NSPrintOperation

标签 objective-c cocoa macos printing interface-builder

我正在编写一个基于文档的 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/

相关文章:

objective-c - 目标模式不包含 '%' 。生成文件

iphone - 什么时候调用 'drawRect'?

swift - 如何从命令行编译 Swift

iphone - 如何防止或补偿核心图形路径的缩放变换?

java - Mac Java - 异常 : java. lang.UnsupportedClassVersionError

macos - 显示连接的显示器/显示器/分辨率的终端命令?

iphone - 如何创建类似iPod播放器的 View ?

iphone - 如何制作类似 iPhone 文件夹的东西?

cocoa - 如何使用绑定(bind)在基于 NSTableView 的 View 中启用/禁用编辑?

c++ - 简单 QMainWindow 代码的菜单栏不显示,Qt Creator Mac OS