Update the value of an NSSlider in realtime

1.6k Views Asked by At

In my swift 3 app, I have an NSSlider that I created like this:

self.myAwesomeSlider = NSSlider(frame:CGRect(x: 10, y: 100, width: 20, height: 300))
self.myAwesomeSlider?.cell = NSSlider()
self.myAwesomeSlider?.maxValue = 127
self.myAwesomeSlider?.target = self
self.myAwesomeSlider?.isContinuous = true
self.view?.addSubview(self.myAwesomeSlider!)

What I want to do now, is (from another function) update the value of this slider in realtime.

I tried to do it very basic like this:

self.myAwesomeSlider?.integerValue = Int(value)

but it doesnt update the dot. What I wish to get is new value gets calculated and dot on slider does move according to the value.

Is this possible?

thank you


Edit

self.myAwesomeSlider?.integerValue = Int(value)

Apparently, this does work, however, I have to click on another application before I see actual change.

1

There are 1 best solutions below

2
ami rt On
myAwesomeSlider.addTarget(self, action: "sliderValueChanged:", 
                      forControlEvents: UIControlEvents.ValueChanged)

func sliderValueChanged() {    
    var slider = sender as! UISlider
    label.text = "\(slider.value)"
}