【问题标题】:Change color of NSTextField更改 NSTextField 的颜色
【发布时间】:2026-02-10 14:55:01
【问题描述】:

我正在尝试编写一个简单的示例来修改 NSTextfield 的颜色,使用绿色和红色作为好答案或错误答案。 我无法做到这一点,因为在为 NSTextField 使用此苹果指南页面时,我总是收到一条错误消息,AppKit framework ref.

我正在尝试使用此代码:

@IBOutlet weak var mensajeResultado: NSTextField! 

when trying to colorize it without success
let rango = NSRange(location: 0,length: 0)
        mensajeResultado.superclass.setTextColor(NSColor.redColor(), range: rango)

【问题讨论】:

  • 您是说在 0 长度范围内更改颜色?它正在做你要求它做的事情。
  • Xcode 提出的方法使用第二个参数作为范围,但在苹果文档中有一个唯一的输入,NSColor。这很奇怪。
  • 你不能在字符串上使用 NSRange(location: 0,length: 0)

标签: swift cocoa nstextfield


【解决方案1】:

不应该只是:

mensajeResultado.textColor = NSColor.redColor()

?

【讨论】:

  • 这不是答案吗?我不是 100% 确定,因为我不使用 Swift,所以我将其表述为一个问题,但它旨在作为一个(可能的)答案。
  • 抱歉,这是我的一个错误。我删除了我的评论并投了赞成票。
  • FWIW 这些天是NSColor.red
【解决方案2】:

Ken Thomases 的回答是正确的,您只需将颜色分配给文本字段的 textColor 属性即可。

仅供参考,当您不确定时在 Playground 中进行测试非常方便,例如:

import Cocoa
import XCPlayground

let tf = NSTextField(frame: NSMakeRect(50, 50, 100, 100))
tf.stringValue = "test"
tf.font = NSFont(name: "Helvetica", size: 16)
tf.backgroundColor = NSColor.blueColor()

tf.textColor = NSColor.whiteColor()

let v = NSView(frame: NSMakeRect(0, 0, 200, 200))
v.addSubview(tf)

XCPShowView("My View", v)

【讨论】:

  • 感谢您的回答。我不知道我可以在操场上测试 UI 部件。这为我开辟了一种新的工作方式。再次感谢。