3

我想更改 NSTextView 中特定文本的颜色。该方法应该在 keydown 事件之后检查。

例如:单词 void 完成,字符串 void 将颜色更改为蓝色。就像一个代码编辑器。

我搜索了很长时间,但没有找到任何东西。我的代码:

 NSRange range = [text rangeOfString:@"void"];
 NSString *substring = [[text substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
 //I think, here is the mistake.
 NSAttributedString *now = [NSAttributedString initWithString:substring];
 [now setTextColor:[[NSColor blueColor]]];

我读过我必须使用 aNSAttributedString但我不知道如何从字符串中获取此类。

我是可可编程的新手。

感谢您的每一个帮助!

4

1 回答 1

5

你可以这样做:

NSString *str = @"Hello. That is a test attributed string.";

//in place of NSMakeRange put your range

[self.textview setRichText:YES];
[self.textview setString:str];
[self.textview setTextColor:[NSColor redColor] range:NSMakeRange(3,5)];
于 2013-03-16T10:31:51.780 回答