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