2017-04-25 68 views
3

值在我的SWIFT 3的應用程序,我有這樣的創建NSSlider:更新的NSSlider的實時

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!) 

我想現在要做的,是(從另一個函數)更新值這個滑塊的實時。

我試圖做這樣很簡單:

self.myAwesomeSlider?.integerValue = Int(value) 

但它不更新的點。我希望得到的是新值得到計算,滑塊上的點根據值移動。

這可能嗎?

感謝


您編輯

self.myAwesomeSlider?.integerValue = Int(value) 

顯然,這樣做的工作,但是,我要對其他應用程序點擊之前,我看實際變化。

+0

[更改NSSlider值編程(http://stackoverflow.com/questions/9867343/change-nsslider-value-programmatically?rq=1)在這裏,他們做到這一點編程照你的意見:) – Kimdv

+0

@Kimdv是的,他們這樣做,這是設置價值的正常方式,但是,我希望我的實時更新,所以我需要能夠在事實之後設置值,這對我來說並不正確這樣做。 – Wesley

+0

只有當程序控制返回到主事件循環(並且必須在主線程上更新)時纔會更新UI元素。 –

回答

-1
myAwesomeSlider.addTarget(self, action: "sliderValueChanged:", forControlEvents: UIControlEvents.ValueChanged) 

func sliderValueChanged(){ 

var slider = sender as! UISlider 
    label.text = "\(slider.value)" 

} 
+1

請爲**添加解釋爲什麼**此代碼將回答問題。 – dfd

+1

小問題,這是iOS的代碼,不能使用像mac開發那樣的東西 – Wesley