NSTextView的左缩进

时间:2016-05-09 14:00:54

标签: macos cocoa indentation nstextview

我写了以下代码:

 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调用此代码并且已经存在的文本不会改变外观。

谢谢。

0 个答案:

没有答案