Home > Web Front-end > JS Tutorial > body text

About MacOS Development - NSParagraphStyle

一个新手
Release: 2017-09-27 10:12:18
Original
1487 people have browsed it
  • Introduction

  • Usage method

  • Calculate paragraph height

  • Related attributes

    • alignment - 对齐方式
      firstLineHeadIndent - 首行缩进
      headIndent -  缩进
      tailIndent -  尾部缩进
      lineBreakMode - 断行方式
      maximumLineHeight - 最大行高
      minimumLineHeight - 最低行高
      lineSpacing - 行距
      paragraphSpacing  -段距
      paragraphSpacingBefore - 段首空间
      baseWritingDirection - 句子方向
      lineHeightMultiple - 可变行高乘因数
      hyphenationFactor - 连字符属性
      Copy after login

Introduction

NSParagraphStyleAttributeName is used to set NSAttributedString, similar to NSFontAttributeName.
The difference is: NSParagraphStyleAttributeName is to set the paragraph style, NSFontAttributeName is to set the font.


Usage method

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];

    NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle alloc] init];
    [textStyle setAlignment:NSTextAlignmentCenter];
    [textStyle setLineBreakMode:NSLineBreakByTruncatingTail];    
    NSDictionary *attributes = @{NSFontAttributeName: [NSFont systemFontOfSize:18],
                                 NSForegroundColorAttributeName: [NSColor whiteColor],
                                 NSParagraphStyleAttributeName: textStyle};    
                                 float w = self.frame.size.width;    
                                 float h = self.frame.size.height;    
                                 float str_h = 20;

    NSAttributedString *attributedText4 = [[NSAttributedString alloc] initWithString:@"这是一个 string" attributes:attributes];
}
Copy after login

Calculate paragraph height

 - (void)countHeight{    NSString *originStr = @"ashdhsaksah 和就会撒大声地哈萨克的";

    NSMutableAttributedString *attriStr = [[NSMutableAttributedString alloc] initWithString:originStr];
    NSFont *descFont = [NSFont systemFontOfSize:16];

    NSMutableParagraphStyle *descStyle = [[NSMutableParagraphStyle alloc]init];
    [descStyle setLineSpacing:1];//行间距

    CGFloat destinW = 100;    CGSize descSize = [originStr boundingRectWithSize:CGSizeMake(destinW, MAXFLOAT)
                                                options:NSStringDrawingUsesLineFragmentOrigin
                                             attributes:@{NSFontAttributeName:descFont,
                                                          NSParagraphStyleAttributeName :descStyle}
                                                context:nil].size;

}
Copy after login

Related attributes

  • NSMutableParagraphStyle and NSParagraphStyle includes the following attributes

alignment - 对齐方式
firstLineHeadIndent - 首行缩进
headIndent -  缩进
tailIndent -  尾部缩进
lineBreakMode - 断行方式
maximumLineHeight - 最大行高
minimumLineHeight - 最低行高
lineSpacing - 行距
paragraphSpacing  -段距
paragraphSpacingBefore - 段首空间
baseWritingDirection - 句子方向
lineHeightMultiple - 可变行高,乘因数。
hyphenationFactor - 连字符属性
Copy after login
(void)setParagraphStyle{
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.lineSpacing = 20.;// 行间距
paragraphStyle.lineHeightMultiple = 1.5;// 行高倍数(1.5倍行高)
paragraphStyle.firstLineHeadIndent = 30.0f;//首行缩进
paragraphStyle.minimumLineHeight = 10;//最低行高
paragraphStyle.maximumLineHeight = 20;//最大行高(会影响字体)
paragraphStyle.alignment = NSTextAlignmentLeft;// 对齐方式
paragraphStyle.defaultTabInterval = 144;// 默认Tab 宽度
paragraphStyle.headIndent = 20;// 起始 x位置
paragraphStyle.tailIndent = 320;// 结束 x位置(不是右边间距,与inset 不一样)
paragraphStyle.paragraphSpacing = 44.;// 段落间距
paragraphStyle.paragraphSpacingBefore = 44.;// 段落头部空白(实测与上边的没差啊?)
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;// 分割模式
/*
NSLineBreakByWordWrapping = 0,      // Wrap at word boundaries, default
NSLineBreakByCharWrapping,  // Wrap at character boundaries
NSLineBreakByClipping,  // Simply clip
NSLineBreakByTruncatingHead, // Truncate at head of line: “…wxyz”
NSLineBreakByTruncatingTail, // Truncate at tail of line: “abcd…”
NSLineBreakByTruncatingMiddle // Truncate middle of line:  “ab…yz”
*/
paragraphStyle.baseWritingDirection = NSWritingDirectionRightToLeft;// 段落方向
/*
NSWritingDirectionNatural       = -1,    // Determines direction using the Unicode Bidi Algorithm rules P2 and P3
NSWritingDirectionLeftToRight   =  0,    // Left to right writing direction
NSWritingDirectionRightToLeft   =  1
*/
}
Copy after login

The above is the detailed content of About MacOS Development - NSParagraphStyle. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!