如何以编程方式格式化 NSTextView 中的部分文本?例如,将所有出现的单词“foo”设置为蓝色,或者将所有文本设置为灰色,但当前段落(光标所在的位置)设置为纯黑色? 谢谢
最佳答案
您可以使用 NSAttributedString
或 NSMutableAttributedString
只需指定文本格式(颜色、文本大小等)并将其传递给您的 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 中。
关于objective-c - NSTextView:以编程方式格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32326802/