【发布时间】:2017-09-22 03:43:51
【问题描述】:
在我的 swift 3 应用程序中,我有一个这样创建的 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)
显然,这确实有效,但是,我必须单击另一个应用程序才能看到实际更改。
【问题讨论】:
-
change NSSlider Value programmatically 在这里,他们按照您的要求以编程方式进行操作 :)
-
@Kimdv 是的,他们这样做了,这是设置值的正常方式,但是,我希望我的实时更新,所以我需要能够在事后设置值,这样做对我来说并不完全有效。
-
UI 元素仅在程序控制返回到主事件循环时更新(并且必须在主线程上更新)。
-
@MartinR 所以这不可能?
-
@WesleyLi stackoverflow.com/questions/9015767/nsslider-animation?rq=1 这是他们如何通过更改值对其进行动画处理。
标签: swift macos swift3 nsslider