Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用rust druid(不是lens,而是方法调用)在文本框中键入时实现回调?_Rust_Druid Rs - Fatal编程技术网

如何使用rust druid(不是lens,而是方法调用)在文本框中键入时实现回调?

如何使用rust druid(不是lens,而是方法调用)在文本框中键入时实现回调?,rust,druid-rs,Rust,Druid Rs,我想通过传递参数或从闭包调用具有参数的以下方法: fn设置边界(&mut self,arg:&str,is_left_border:bool)->(){ 让val=arg.parse::(); 匹配值{ Ok(float)=>{if is_left_border{self.left_border=Some(float)}else{self.right_border=Some(float)}, Err()=>{} } } 在文本框中输入文本时。我并没有找到一种使用镜头访问方法的方法,但我对生锈

我想通过传递参数或从闭包调用具有参数的以下方法:


fn设置边界(&mut self,arg:&str,is_left_border:bool)->(){
让val=arg.parse::();
匹配值{
Ok(float)=>{if is_left_border{self.left_border=Some(float)}else{self.right_border=Some(float)},
Err()=>{}
}
}
在文本框中输入文本时。我并没有找到一种使用镜头访问方法的方法,但我对生锈还不太熟悉,所以决定征求意见

就我而言,如果我能“跟踪”这个领域的变化,并以这种方式去做,它也会这样做

提前感谢。

文本框
接收到对其
更新
方法的调用时,您可以使用被调用,然后检查数据是否已更改:

使用德鲁伊::{
阿普朗彻,
WidgetExt,
小装置,
环境,
UpdateCx,
WindowDesc,
小部件::文本框,
控件::控制器
};
结构UpdateCallback();
UpdateCallback的impl控制器{
fn更新(&M)自我更新,
子项:&mut文本框,
ctx:&mut UpdateCtx,
旧数据:&字符串,
数据:&字符串,
环境:&环境
) {
如果旧数据!=数据{
//数据已更改,您可以在此处调用函数
println!(“{}”,数据);
}
//同时通知孩子数据已更改
更新(ctx、旧_数据、数据、环境)
}
}
fn build_root_widget()->impl widget{
TextBox::new().controller(UpdateCallback())
}
fn main(){
AppLauncher::with_window(WindowDesc::new(build_root_widget)).launch(“Test.to_string()).unwrap();
}
此处的相关部分是
控制器
impl for
UpdateCallback
以及对
build\u root\u widget()
函数内部的调用