将左缩进应用于NSTextView

时间:2015-01-11 06:41:50

标签: indentation nstextview

所有

按照this链接,我制作了以下代码:

void MyClass::SetStyle(long start, long end, const CTextAttr &style)
{
        paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
        [paragraphStyle setHeadIndent: style.GetLeftIndent() * mm2pts / 10.0];
        [paragraphStyle setFirstLineHeadIndent: style.GetLeftIndent() * mm2pts / 10];
        NSString *str = [[m_textView textStorage] string];
        NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString: str];
        [attrString addAttribute:NSParagraphStyleAttributeName value: paragraphStyle range: NSMakeRange( 0, [str length] ) ];
        [paragraphStyle release];
        [attrString autorelease];
}

然而,在运行这段代码时,我没有看到视图中的字符串被重新定位到左侧。在gdb下运行我确实看到在str和attrsString指针中设置了正确的字符串。

我看到SO上的帖子,我需要在设置属性后应用一些文本,但我已经有了文本段落,并希望在其上应用缩进。

我对Cocoa并不熟悉 - 刚刚开始,所以我想解释为什么代码无法正常工作。

TIA。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

在这里回答我自己的问题。

显然,我需要做的就是发出:

[[m_textView textStorage] replaceCharactersInRange: NSMakeRange( 0, [str length] ) withAttributedString: attrString];

之后,文本显示缩进。

谢谢大家。