如何更改NSString颜色?

时间:2011-07-15 14:30:15

标签: cocoa nsstring textview nscolor

我正在尝试为具有类似于即时消息的用户界面的mac制作应用程序。到目前为止,我有一个文本字段,文本视图和一个按钮,其中所有内容都在IB中的App Delegate中成功连接。当您在文本字段中输入文本并按下按钮时,它会将字符串值发送到文本视图并在文本字段中删除它。我的问题是在文本视图中将用户名称设置为不同的颜色。例如,当我发布一些内容时,它应该在文本视图中说“UserName:...”。我希望“UserName”与他插入的文本颜色不同。

到目前为止,我的.h文件中有NSString *userName;NSString *userString;。我的方法是让userName字符串始终为相同的颜色,并在打印userString之前将其打印到文本视图。这就是我被困住的地方,我试图在互联网上寻找答案,但没有运气。

到目前为止,我已经尝试过,

userName = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor redColor], NSBackgroundColorAttributeName, nil];

[userName setSelectedTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [NSColor blueColor], NSBackgroundColorAttributeName, nil]];

在.m文件中的此代码下

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

1 个答案:

答案 0 :(得分:1)

NSString对象没有属性。你想要一个NSAttributedString。更具体地说,您希望控件接受具有不同属性的各种范围的NSAttributedStrings。在您的情况下,NSTextView可能比NSTextField更容易使用。

请先阅读文档:Attributed String Programming GuideNSTextView Class ReferenceText System Overview,然后再询问“你能提供示例代码吗?” : - )