如何触发具有相同值的 ValueListener
How to trigger a ValueListener with the same value
我收听一个包含要加载文件路径的值。我想加载相同的文件,但监听器系统不会做出反应,除非路径与上次事件不同。
如何让 ValueListener 触发相同的数据?
首先,创建一个派生自 Value::ValueSource
的 class,它有自己重写的 setValue()
实现,就像这样:
void setValue (const var& newValue) override
{
// base class version checks for equality first. Skip that
// and always set the value and notify of changes.
value = newValue;
sendChangeMessage (false);
}
其次,在创建Value
对象时,传入一个指向这个class的新实例的指针,如
Value myValue(new EagerValueSource());
然后使用 Value
对象,完全按照其他方式使用,除了每当调用 myValue
的 setValue()
方法时都会通知侦听器,无论这实际上是否是一个新值与否。
我收听一个包含要加载文件路径的值。我想加载相同的文件,但监听器系统不会做出反应,除非路径与上次事件不同。
如何让 ValueListener 触发相同的数据?
首先,创建一个派生自 Value::ValueSource
的 class,它有自己重写的 setValue()
实现,就像这样:
void setValue (const var& newValue) override
{
// base class version checks for equality first. Skip that
// and always set the value and notify of changes.
value = newValue;
sendChangeMessage (false);
}
其次,在创建Value
对象时,传入一个指向这个class的新实例的指针,如
Value myValue(new EagerValueSource());
然后使用 Value
对象,完全按照其他方式使用,除了每当调用 myValue
的 setValue()
方法时都会通知侦听器,无论这实际上是否是一个新值与否。