如何更改 NSString 颜色?

发布于 2024-11-23 21:07:51 字数 867 浏览 4 评论 0原文

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

到目前为止,我的 .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

I'm trying to make an app for the mac that has a user interface similar to an instant messenger. So far I have a text field, text view and a button, where everything is successfully connected in the App Delegate in IB. When you enter your text in the text field and press the button, it sends the string value to the text view and erases it in the text field. My problem is getting the users name to be a different color in the text view. For example, when I post something it should say in the text view "UserName: ...". I want the "UserName" to be a different color than the text he inserted.

So far I have a NSString *userName; and a NSString *userString; in my .h file. My method is to have the userName string to always be the same color and print it to text view before printing the userString. This is where I'm stuck, I've tried to search the internet for answers but no luck.

So far I've tried,

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

and

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

under the the this code in the .m file

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牵你的手,一向走下去 2024-11-30 21:07:51

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

请阅读文档:属性字符串编程指南, NSTextView 类参考,和 文本系统概述< /a> 在询问不可避免的“您能提供示例代码吗?”之前:-)

NSString objects don't have attributes. You want an NSAttributedString. More specifically, you want controls that accept NSAttributedStrings with various ranges having different attributes. In your case, an NSTextView might be easier to use than an NSTextField.

Please read the documentation: Attributed String Programming Guide, NSTextView Class Reference, and Text System Overview before asking the inevitable "could you provide sample code, please?" :-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文