所有
按照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。
我做错了什么?
答案 0 :(得分:0)
在这里回答我自己的问题。
显然,我需要做的就是发出:
[[m_textView textStorage] replaceCharactersInRange: NSMakeRange( 0, [str length] ) withAttributedString: attrString];
之后,文本显示缩进。
谢谢大家。