0

我收听一个包含要加载的文件路径的值。我想加载相同的文件,但除非路径与上一个事件不同,否则侦听器系统不会做出反应。

如何让 ValueListener 触发相同的数据?

4

1 回答 1

1

首先,创建一个派生自它的类,Value::ValueSource它有自己的重写实现,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对象时,传入一个指向这个类的新实例的指针,比如

Value myValue(new EagerValueSource());

然后Value完全按照您本来的方式使用该对象,除了每当调用myValue'setValue()方法时都会通知侦听器,无论这实际上是否是一个新值。

于 2016-11-21T15:03:53.787 回答