我写了以下代码:
NSMutableParagraphStyle *paragraphStyle;
double indent = 100 * mm2pt / 10.0;
if ( !m_textView )
return;
if ( start == -1 && end == -1 )
{
if( style.HasLeftIndent() )
{
paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setHeadIndent: indent];
[paragraphStyle setFirstLineHeadIndent: indent];
[m_textView setDefaultParagraphStyle:paragraphStyle];
[paragraphStyle release];
}
}
else // Set the attributes just for this range.
{
NSRange range = NSMakeRange(start, end-start);
NSTextStorage* storage = [m_textView textStorage];
if( style.HasLeftIndent() )
{
paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setFirstLineHeadIndent: indent];
[paragraphStyle setHeadIndent: indent];
[storage addAttribute: NSParagraphStyleAttributeName value: paragraphStyle range: range];
[paragraphStyle release];
}
}
这个想法是,如果开始和结束都等于-1,那么左缩进应该应用于整个文本视图是否已经存在文本。如果我有选择,则应该应用else条件。
不幸的是,if中的代码不起作用,但else条件有效,我可以看到文本缩进以供选择。
我做错了什么?因为即使控件是空的(没有文本)并且应用了左缩进,我输入的文本(以编程方式或通过键入)应该留下缩进。但是尝试使用start = -1和end = -1调用此代码并且已经存在的文本不会改变外观。
谢谢。