【问题标题】:Change the Color of specific substrings in NSTextView更改 NSTextView 中特定子字符串的颜色
【发布时间】:2013-03-16 10:23:25
【问题描述】:

我想更改 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,但我不知道如何从字符串中获取此类。

我是可可编程的新手。

感谢您的每一个帮助!

【问题讨论】:

  • +1 用于 osx 问题 :)

标签: macos cocoa nsstring nstextview


【解决方案1】:

你可以这样做:

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)];

【讨论】:

  • 如何在 NSTextView 中设置?
  • [textView setRichText:YES];并尝试 [textView setAttributedString:str];
  • 它的调用“'NSTextView'可能不会响应'setAttributedString:'”。
  • 啊,我已经修复了它:[[codrTextView textStorage] setAttributedString: str];。但是现在我遇到了设置整个文本视图颜色和背景的问题。
  • 这很酷。试试我的回答……如果你想要更多,请说:)
猜你喜欢
  • 1970-01-01
  • 2016-03-04
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 2011-06-05
  • 2013-04-17
相关资源
最近更新 更多