NSTextView:以编程方式格式化文本

NSTextView: format text programmatically

如何以编程方式设置 NSTextView 中部分文本的格式?例如,将所有出现的单词 "foo" 设为蓝色或将所有文本设为灰色但当前段落(光标所在的位置)为纯黑色? 谢谢

您可以使用 NSAttributedStringNSMutableAttributedString 只需指定文本格式(颜色、文本大小等)并将其传递给您的 NSTextView,例如:

    NSString *str = @"test string";
    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString: str];
    NSDictionary *attributes = @{
                                 NSForegroundColorAttributeName : [NSColor redColor],
                                 NSFontAttributeName : [NSFont fontWithName:@"HelveticaNeue-Bold" size:12.0]
                                 };
    [attrString setAttributes:attributes range:NSMakeRange(0, str.length)];

    [[self.myNSTextView textStorage] appendAttributedString: attrString];

这会将您的所有文本设置为相同,但只需将范围属性替换为您想要更改的文本的这一部分: NSMakeRange(0, 2) 这将只向前两个 lerrer 添加文本属性。