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