Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

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

1 visualizzazione (ultimi 30 giorni)
Steven Landis
Steven Landis il 27 Giu 2018
Chiuso: MATLAB Answer Bot il 20 Ago 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

Risposte (0)

Questa domanda è chiusa.

Prodotti


Release

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by