在MATLAB文档中引用了编辑框uicontrol或在此处说明 post,当单击另一个组件或菜单栏或后台GUI时,将执行编辑框回调。但是在我尝试使用此功能时,到目前为止我还没有能够看到回调执行,除非更改了编辑框文本或按下了Enter键。我想要实现的是,即使没有输入任何内容,只要编辑框中有焦点丢失,就会执行编辑框回调。请告诉我这里我缺少什么以及如何做到这一点?
提前致谢。
答案 0 :(得分:2)
底层Java对象有一个名为FocusLostCallback
的回调函数,它可以执行你想要的操作 - 当对象的焦点丢失时执行,即使你没有改变任何内容。
您需要MATLAB文件交换中的findjobj
。然后,获取Java句柄并像往常一样设置回调(确保在尝试获取Java句柄时uicontrol
可见):
jh = findjobj(myEditBox); % myEditBox is a uicontrol handle
set(jh, 'FocusLostCallback', @myCallback);
可以在Yair Altman's Undocumented MATLAB blog找到更完整的未记录的uicontrol
回调列表。
答案 1 :(得分:1)
此方法与单行文本框完美配合,但它对多行文本框(uicontrol,样式编辑,max = 2)有任何影响