Styling NSTextfield

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]