我正在尝试为具有类似于即时消息的用户界面的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
答案 0 :(得分:1)
NSString对象没有属性。你想要一个NSAttributedString。更具体地说,您希望控件接受具有不同属性的各种范围的NSAttributedStrings。在您的情况下,NSTextView可能比NSTextField更容易使用。
请先阅读文档:Attributed String Programming Guide,NSTextView Class Reference和Text System Overview,然后再询问“你能提供示例代码吗?” : - )