App Designer get element in focus
7 次查看(过去 30 天)
显示 更早的评论
Hi there,
I switched from GUIDE to the App Designer some time ago, and find that a lot of important functionalities are now missing. One particular feature is the possibility to get a handle to the current GUI element in focus. In my particular example, I have 2 ListBox elements in my application and I want to add a shortcut to them for modification. The KeyPress function is only possible on the uifigure level, so I need a way to distinguish between the two ListBox elements.
Is this possible in some way or does this feature not exist at the moment.
Thanks, Rasmus
2 个评论
回答(1 个)
Suraj Kumar
2024-7-30
Hi,
I understand that you are facing difficulty in getting the handle of the current GUI element which is in focus. As a workaround you can track the focus manually by setting up callbacks for each interactive component and storing the handle of the currently focused component in a property.
Consider adding a private property to store focussed component as shown below:
properties (Access = private)
FocusedComponent
end
Then implement the “onKeyPress” callback to handle key press events based on which “ListBox” is currently focussed.
You can refer to the code below for better understanding:
function onKeyPress(app, event)
if isempty(app.FocusedComponent)
return;
end
switch app.FocusedComponent
case app.ListBox1
% Handle key press for ListBox1
disp('Key pressed in ListBox1');
case app.ListBox2
% Handle key press for ListBox2
disp('Key pressed in ListBox2');
end
end
Please refer to the following documentation link on “callbacks” in App Designer :
Hope this helps!
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!