如何创建自动化NSTextView进行打印?

时间:2011-11-03 13:39:24

标签: cocoa printing nstextview

这就是我想要做的事情:为包含多个段落的文本生成打印视图。在每个段落的一侧,我想要显示注释文本。

drawRect中如此有效我需要在其右侧创建NSTextView(在LHS上)和相应的NSTextView的实例。接下来是另一对,依此类推......

问题是,如何创建宽度有限但高度不受限制的文本视图?我知道将使用什么字体及其大小,但高度还取决于文本包装,我不知道如何解释......

1 个答案:

答案 0 :(得分:1)

您是否在询问如何计算用于创建新textview的正确rect尺寸?如果是这样,这是一个演示如何使用NSString的sizeWithAttributes方法的方法:

- (BOOL) doesString:(NSString *)string fitInRectOfSize:(NSSize)rectSize usingFont:(NSFont *)font {
    NSMutableDictionary *fontAttrs = [[NSMutableDictionary alloc] init];
    NSSize sizeFilled = [string sizeWithAttributes:fontAttrs];
    [fontAttrs release];
    if (sizeFilled.width <= rectSize.width && sizeFilled.height <= rectSize.height)
            return YES;
    else 
            return NO;
}

对于文本换行,如果文本已输入NSTextView,则字符串在软换行符处将有'\ n'字符。如果你留下这些,stringWithAttributes将考虑它们。