macos - 以编程方式快速设置 NSButton 的颜色

标签 macos cocoa swift background-color nsbutton

我使用这段代码以编程方式生成一些 NSButtons:

for i in 1...height {
        for j in 1...width {
            var but = NSButton(frame: NSRect(x: x, y: y + 78, width: 30, height: 30))
            but.tag = k
            but.title = ""
            but.action = Selector("buttonPressed:")
            but.target = self
            but.bezelStyle = NSBezelStyle(rawValue: 6)!
            but.layer?.backgroundColor = NSColor.blackColor().CGColor

            var ges = NSClickGestureRecognizer(target: self, action: Selector("addFlag:"))
            ges.buttonMask = 0x2
            ges.numberOfClicksRequired = 1
            but.addGestureRecognizer(ges)

            ar.append(but)
            self.view.addSubview(but)
            x += 30
            k++
        }
        y += 30
        x = 0
    }

而且我需要将所有按钮的背景颜色设置为灰色或黑色(随机)。我不知道如何获取或设置 NSButton 背景色。我对 swift 编程还很陌生,我也不太了解 obj-c,所以如果你能用 swift 编写它,我将非常感激!

最佳答案

我正在用这段代码来做

final class MyButton: NSButton {
    override func awakeFromNib() {
        let layer = CALayer()
        layer.backgroundColor = CGColorCreateGenericRGB(59.0/255, 52.0/255.0, 152.0/255.0, 1.0)
        self.wantsLayer = true
        self.layer = layer
    }
}

关于macos - 以编程方式快速设置 NSButton 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29418310/

相关文章:

Swift 图像大小基于显示的设备

objective-c - 本地化嵌套的 Info.plist 键

python - OMP : Error #15: Initializing libiomp5. dylib,但发现libiomp5.dylib已经初始化

swift - 如何在Mac Catalyst下获取sceneWindow的大小和位置

objective-c - Cocoa 应用程序的跳转栏(类似于 XCode 的)控件

macos - 在 Cocoa 中回复 Apple 事件

objective-c - 用于打开新 Safari 窗口的终端命令

cocoa - 给 NSWindow 一个背景图片

ios - Swift:在 block 中使用其自身值的变量

ios - 创建使用外部 Pod 的自定义 Pod