介绍

AttributedString可以分为NSAttributedString和NSMutableAttributedString两种。在使用中通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式

使用方式

使用方式一

  1. 添加超链接、设置颜色
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    NSString *string = @"欢迎使用,这是测试哦";
    NSMutableAttributedString *colorTitle = [[NSMutableAttributedString alloc] initWithString:string];

    //设置超链接
    [colorTitle addAttributes:@{
    NSUnderlineStyleAttributeName:@1,
    NSLinkAttributeName: [NSURL URLWithString:@"https://baidu.com"],
    } range:NSMakeRange(string.length-9, 4)];

    //设置字体大小
    [colorTitle addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:13] range:NSMakeRange(0, [string length])];

    //设置文字颜色
    [colorTitle addAttribute:NSForegroundColorAttributeName value:[NSColor redColor] range:NSMakeRange(17, 7)];

    //设置文字背景色
    [colorTitle addAttribute:NSBackgroundColorAttributeName value:[NSColor whiteColor] range:NSMakeRange(17, 7)];

    //添加下划线
    [colorTitle addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(17, 7)];

    NSTextField.attributedStringValue = colorTitle;

使用方式二

创建属性字典,并将各种属性初始化。赋值,并利用方法appendAttributedString:添加入NSMutableAttributedString,将其赋给控件的attributedText属性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//初始化NSMutableAttributedString
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]init];

//设置字体格式和大小
NSString *str0 = @"欢迎使用,这是测试哦";
NSDictionary *dictAttr0 = @{NSFontAttributeName:[NSFont systemFontOfSize:14]};
NSAttributedString *attr0 = [[NSAttributedString alloc]initWithString:str0 attributes:dictAttr0];
[attributedString appendAttributedString:attr0];



//设置阴影属性,取值为NSShadow对象
NSString *str7 = @"欢迎使用,这是测试哦";
NSShadow *shadow = [[NSShadow alloc]init];
shadow.shadowColor = [NSColor redColor];
shadow.shadowBlurRadius = 1.0f;
shadow.shadowOffset = CGSizeMake(1, 1);
NSDictionary *dictAttr7 = @{NSShadowAttributeName:shadow};
NSAttributedString *attr7 = [[NSAttributedString alloc]initWithString:str7 attributes:dictAttr7];
[attributedString appendAttributedString:attr7];


//设置字体倾斜度 NSObliquenessAttributeName
NSString *str12 = @"设置字体倾斜度";
NSDictionary *dictAttr12 = @{NSObliquenessAttributeName:@(0.5)};
NSAttributedString *attr12 = [[NSAttributedString alloc]initWithString:str12 attributes:dictAttr12];
[attributedString appendAttributedString:attr12];


//段落样式
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc]init];
//行间距
paragraph.lineSpacing = 10;
//段落间距
paragraph.paragraphSpacing = 20;
//对齐方式
paragraph.alignment = NSTextAlignmentLeft;
//添加段落设置
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraph range:NSMakeRange(0, attributedString.length)];

NSTextField.attributedStringValue = attributedString; //uilabel则是attributedText