Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

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

1 visualización (últimos 30 días)
Steven Landis
Steven Landis el 27 de Jun. de 2018
Cerrada: MATLAB Answer Bot el 20 de Ag. de 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

Respuestas (0)

La pregunta está cerrada.

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by