I stumbled across a post on styling the NSTextfield in a some what simpler? way than I’ve seen before.
Here is the link: Styling NSTextField: A Guide for Designers
override fun viewDidLoad() {
super.viewDidLoad()
inputTextField.wantsLayer = true
let textFieldLayer = CALayer()
inputTextField.layer = textFieldLayer
inputTextField.backgroundColor = fieldBackgroundColor
inputTextField.layer?.backgroundColor = fieldBackgroundColor.CGColor
inputTextField.layer?.borderColor = fieldBorderColor.CGColor
inputTextField.layer?.borderWidth = 1
inputTextField.layer?.cornerRadius = 5
inputTextField.textColor = fieldTextColor
}
As a declare noob, here’s my take on it, although not working. Anyone got any pointers? Possible with the Textfield?
(in TextField1 open event)
[code] declare function NSClassFromString lib “Cocoa” (cls as CFStringRef) as ptr
declare function layer lib “Cocoa” selector “layer” (ob_id As Ptr) As Ptr
declare function CGColor lib “Cocoa” selector “CGColor” (obj as ptr) as ptr
declare function clearColor lib “Cocoa” selector “clearColor” (ob_id As Ptr) As Ptr
declare function colorWithSRGBRed lib “Cocoa” selector “colorWithSRGBRed:green:blue:alpha:”(cls as ptr,red as single,green as single,blue as single, alpha as single) as ptr
declare sub setLayer lib “Cocoa” selector “setLayer:” (ob_id As Ptr, p as ptr)
declare sub setWantsLayer lib “Cocoa” selector “setWantsLayer:” (ob_id As Ptr, b as Boolean)
declare sub setNeedsDisplay lib “Cocoa” selector “setNeedsDisplay” (ob_id As Ptr)
declare sub setDrawsBackground lib “Cocoa” selector “setDrawsBackground:” (obj_id as Ptr, b as boolean)
declare sub setBackgroundColor lib “Cocoa” selector “setBackgroundColor:” (obj_id as Ptr, aColor as Ptr)
declare sub setBorderColor lib “Cocoa” selector “setBorderColor:” (obj_id as ptr, aColor as Ptr)
declare sub setTextColor lib “Cocoa” selector “setBorderColor:” (obj_id as ptr, aColor as ptr)
declare sub setBorderWidth lib “Cocoa” selector “setBorderWidth:” (obj_id as ptr, aWidth as integer)
declare sub setCornerRadius lib “Cocoa” selector “setCornerRadius:” (obj_id as ptr, aRadius as integer)
dim clr as color
clr = &c3C3C3C00
dim FieldBackgroundColor as ptr = CGColor(colorWithSRGBRed(NSClassFromString(“NSColor”), clr.red / 255, clr.Green / 255, clr.blue/255, (255-clr.Alpha)/255))
clr = &c64646400
dim FieldBorderColor as ptr = CGColor(colorWithSRGBRed(NSClassFromString(“NSColor”), clr.red / 255, clr.Green / 255, clr.blue/255, (255-clr.Alpha)/255))
clr = &cF1F1F100
dim FieldTextColor as ptr = CGColor(colorWithSRGBRed(NSClassFromString(“NSColor”), clr.red / 255, clr.Green / 255, clr.blue/255, (255-clr.Alpha)/255))
dim inputTextField as ptr = ptr(TextField1.handle)
dim inputTextFieldLayer as ptr = layer(NSClassFromString(“CALayer”))
setLayer(inputTextField, inputTextFieldLayer)
setWantsLayer(inputTextField, true)
setBackgroundColor(inputTextFieldLayer, FieldBackgroundColor)
setBorderColor(inputTextFieldLayer, FieldBorderColor)
setBorderWidth(inputTextFieldLayer, 1)
setCornerRadius(inputTextFieldLayer, 5)
TextField1.BackColor = ConvertColorCG(&c3C3C3C00)
TextField1.TextColor = ConvertColorCG(&cF1F1F100)
//setDrawsBackground(inputTextField, false) [/code]