确定是否使用MATLAB GUI编辑文本框

确定是否使用MATLAB GUI编辑文本框,matlab,user-interface,textbox,edit,matlab-figure,Matlab,User Interface,Textbox,Edit,Matlab Figure,基本上,我有一个非常复杂的MatlabGUI,用户可以通过editextbox(您可以键入的)添加不同的字符串。问题是我为不同的键盘按钮下压分配了不同的功能,例如“s”和“e”正在使用。每次尝试键入例如“snake”时,都会执行分配给“s”和“e”的函数。是否有任何方法可以确定我在编辑文本框中单击了什么,并且它正在使用->类似于逻辑值,这样我可以通过选中它来阻止按键功能。在回调中,您可以使用gco来获取当前对象。然后,您可以检查这是否是编辑框的图形句柄 fig = figure('WindowK

基本上,我有一个非常复杂的MatlabGUI,用户可以通过editextbox(您可以键入的)添加不同的字符串。问题是我为不同的键盘按钮下压分配了不同的功能,例如“s”和“e”正在使用。每次尝试键入例如“snake”时,都会执行分配给“s”和“e”的函数。是否有任何方法可以确定我在编辑文本框中单击了什么,并且它正在使用->类似于逻辑值,这样我可以通过选中它来阻止按键功能。

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

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

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

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

另一方面,如果您没有设置全局按键回调(使用
WindowKeyPressFcn
),而是单独设置每个
uicontrol
KeyPressFcn
,只需为编辑框指定不同(或否)
KeyPressFcn
就可以了。

谢谢您,它成功了!我的按钮回调是全局的。