确定MATLAB GUI edittextbox是否正在使用

时间:2016-07-26 14:03:43

标签: matlab user-interface textbox edit matlab-figure

基本上我有一个非常复杂的Matlab GUI,用户可以通过editextbox(你可以输入的那个)添加不同的字符串。问题是我为不同的键盘按钮下推分配了不同的功能,例如' s'并且' e'正在使用中。每当你尝试输入例如' snake'分配给' s的功能并且' e'执行。有没有办法确定我在edittextbox中点击了什么,它正在使用中 - >像一个逻辑值,所以我可以通过检查来阻止按键功能。

1 个答案:

答案 0 :(得分:0)

在回调中,您可以使用gco来获取当前对象。然后,您可以检查这是否是编辑框的图形句柄。

fig = figure('WindowKeyPressFcn', @(s,e)keypress());

hedit = uicontrol('Style', 'edit');

function keypress()
    if ~isequal(gco, hedit)
        disp('Window Key Press')
    end
end

另一方面,如果您没有设置全局按键回调(使用WindowKeyPressFcn),而是单独设置每个KeyPressFcn的{​​{1}},只需指定其他(或者否)编辑框的uicontrol可以正常工作。