mohacs mohacs -5 years ago 186
Swift Question

How to change Corner Radius of NSView in Swift Language

changing corner radius of NSView should be pretty straight forward however i am getting error message "fatal error: Can't unwrap Optional.None". is there a chance i am doing this with 10.9 not 10.10 and this is happening due framework differences? or the code is wrong.

class aRoundView: NSView {

let cornerRad = 5.0

init(frame: NSRect) {
super.init(frame: frame)

self.layer.cornerRadius = cornerRad

override func drawRect(dirtyRect: NSRect)


calling it in

func applicationDidFinishLaunching(aNotification: NSNotification?) {

let aView = mainViewTest(frame: NSMakeRect(0, 0, 100, 100))


actually it is not just that. any iteration with self.layer gives same result, backgroundcolor etc.

Answer Source

That is because self.layer is an Optnional value, which is currently not set. Add self.wantsLayer = true before self.layer.cornerRadius, to make sure a proper layer exists.

init(frame: NSRect) {
    super.init(frame: frame)
    self.wantsLayer = true
    self.layer.cornerRadius  = cornerRad
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download