我想更改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]]];
我已经读过我必须使用NSAttributedString
,但我不知道如何从字符串中获取此类。
我是可可编程的新手。
感谢您的帮助!
答案 0 :(得分: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)];