1

我有一个滑块,想在某些功能中更改它的值。我尝试过这样的事情:

(builder componentAt: #SliderR) widget model setValue: 124.

但它不起作用。(值已更改,但标记保持在相同位置)。

4

2 回答 2

1

尝试值:而不是 setValue:

访问这个 ValueHolder 的咒语似乎很长而且很脆弱。请务必将此类代码包装在明确的消息选择器下。或者也许考虑在应用程序的实例变量中共享此状态...

于 2012-11-18T16:42:38.087 回答
1

通常,您会在 UIPainter 中将滑块添加到画布,然后在 GUI Painter 工具窗口中为其输入外观名称。该窗口工具栏中的第二个按钮称为“定义”。单击此处以创建一个返回带有滑块值的 ValueHolder 的方法。然后,您可以使用 #value: 在运行时更改 ValueHolder 的值,它将更新滑块的值并重绘它。

对于某些背景:ValueHolders 持有一个值,其他对象可以注册为它的依赖项,以便在值更改时得到通知。这就是 UI 所做的,因此您可以更新 ValueHolder,并且 UI 将自动更新自身。

于 2012-11-19T05:55:45.917 回答