我有一个滑块,想在某些功能中更改它的值。我尝试过这样的事情:
(builder componentAt: #SliderR) widget model setValue: 124.
但它不起作用。(值已更改,但标记保持在相同位置)。
我有一个滑块,想在某些功能中更改它的值。我尝试过这样的事情:
(builder componentAt: #SliderR) widget model setValue: 124.
但它不起作用。(值已更改,但标记保持在相同位置)。
尝试值:而不是 setValue:
访问这个 ValueHolder 的咒语似乎很长而且很脆弱。请务必将此类代码包装在明确的消息选择器下。或者也许考虑在应用程序的实例变量中共享此状态...
通常,您会在 UIPainter 中将滑块添加到画布,然后在 GUI Painter 工具窗口中为其输入外观名称。该窗口工具栏中的第二个按钮称为“定义”。单击此处以创建一个返回带有滑块值的 ValueHolder 的方法。然后,您可以使用 #value: 在运行时更改 ValueHolder 的值,它将更新滑块的值并重绘它。
对于某些背景:ValueHolders 持有一个值,其他对象可以注册为它的依赖项,以便在值更改时得到通知。这就是 UI 所做的,因此您可以更新 ValueHolder,并且 UI 将自动更新自身。