Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

How can I read the string in an input box while editing?

1 vue (au cours des 30 derniers jours)
Steven Landis
Steven Landis le 27 Juin 2018
Clôturé : MATLAB Answer Bot le 20 Août 2021
I have an input box:
this.gui.p1.name_input = uicontrol(...
'Parent', panel,...
'Style', 'edit',...
'String', 'Search',...
'FontSize', this.font.body,...
'HorizontalAlignment', 'left',...
'KeyPressFcn', @this.on_name_change...
);
With a callback function:
function on_name_change(this, ~, ~)
fprintf('Name changed to %s\n', get(elem, 'String'));
end
When I type in the input box, the 'String' property doesn't get updated until I press enter or leave the input box.
For example, if the input box initially had the string 'Search', this function will print out
Search
Search
Search
for every time I press a key.
The preferred behavior would be (if I pressed backspace 3 times)
Searc
Sear
Sea
Update:
By adding a drawnow into the update function, the text correctly updates when I press enter. However, it doesn't work for any other keys.
function on_name_change(this, elem, ~)
drawnow
fprintf('changed to %s\n', get(elem, 'String_I'));
end

Réponses (0)

Cette question est clôturée.

Produits


Version

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by