可可.创建NSTextView,向其添加NSString并打印

Iri*_*ina 1 macos cocoa

我有一个窗口,上面有一个用于打印收据的按钮.我需要做的是创建一个简单的NSTextView,向它添加一个NSString(至少像"Hello World")并打印它而不在窗口上显示NSTextView.

这是我目前拥有的:

    NSTextView *textView = [[NSTextView alloc] init];

    NSString *text = @"testing";

    [textView setEditable:true];
    NSRange range = NSMakeRange( 0, [[textView string] length]);
    [textView setSelectedRange:range];
    [[[textView textStorage] mutableString] appendString:text];

    NSPrintOperation *printOperation;

    printOperation = [NSPrintOperation printOperationWithView:textView];


    [printOperation runOperation];
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我看到打印对话框,但预览为空.当我更改printOperationWithView:textView]; 从textView到我窗口上的一个现有视图,它打印正常.

主要的是..我不想在单击打印按钮后显示视图.理想情况下,我想打印文本,而不是视图.

Isa*_*bel 6

你尝试过使用-initWithFrame非零矩形吗?

NSTextView *textview = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 0, 468, 648);
Run Code Online (Sandbox Code Playgroud)

(468 x 648会使它适合A4纸张,边距为1英寸.)