【问题标题】:How do I change NSString color?如何更改 NSString 颜色?
【发布时间】:2011-07-15 14:30:15
【问题描述】:

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

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

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

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

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

.m文件中的this代码下

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

【问题讨论】:

    标签: objective-c cocoa textview nsstring nscolor


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 2014-05-02
      • 2018-08-20
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多