Ich erstelle eine einfache benutzerdefinierte NSView
, die es dem Benutzer ermöglicht, 3 Textfelder jeweils für R, G und B-Werte jeweils einzugeben. Ich habe diese Frage bereits referenziert und die Antwort here gesetzt - sie rechnet nur bis Swift 2.0
. Kennt also jemand die richtige Technik, um denselben Effekt in Swift 3.0
zu erhalten? Ich kann anscheinend nichts bekommen, was ich mache, um zu arbeiten. Ich bekomme immer Fehler aller Art.Ändern der Farbe von NSView
Hier ist die aktuelle Technik, die ich bin mit (Dies scheint zu funktionieren ... aber es wird nicht für die anderen 2 RGB
Werte berücksichtigen, da es in den @IBAction
verwendet wird):
//viewDidLoad
RVCustomView.wantsLayer = true
@IBAction func redValue(_ sender: AnyObject) {
print(red.stringValue)
var rValue = 0
let str = red.stringValue
if let n = NumberFormatter().number(from: str) {
rValue = Int(CGFloat(n))
}
CustomNSView.layer?.backgroundColor = CGColor(red: rValue, green: 255, blue: 255, alpha: 255)
}
Dies wird nicht funktionieren. Swift 3 erfordert die Verwendung von '.layer? .backgroundColor', bevor Sie die Farbe anpassen können. Es sei denn, es gibt eine andere Möglichkeit, dies zu tun. Aber das ist der einzige Weg, wie ich es zum Laufen bringen konnte – KSigWyatt