swiftmacosnsprogressindicator

Swift: Setting progress of NSProgressIndicator


I have tried to setup my own NSProgressIndicator with the following method.

class ProgressViewController : NSViewController 
{
    override func loadView()
    {
        let view = NSView(frame: NSMakeRect(0,0,300,120))
        view.wantsLayer = true
        view.layer?.borderWidth = 0
        self.view = view

        let text = NSTextField(frame: NSRect(x: 20, y: 45, width: 260, height: 20))
        text.drawsBackground = true
        text.isBordered = false
        text.backgroundColor = NSColor.controlColor
        text.isEditable = false
        self.view.addSubview(text)
        text.stringValue = "Progress Text"

        let indicator = NSProgressIndicator(frame: NSRect(x: 20, y: 20, width: 260, height: 20))
        indicator.minValue = 0.0
        indicator.maxValue = 100.0
        indicator.doubleValue = 33.0
        self.view.addSubview(indicator)
    }
}

My problem is that the indicator is always shown full. Am I missing a trick?


Solution

  • The default style is indeterminate. Set it to false and everything should be OK:

    indicator.isIndeterminate = false