Info

この質問は閉じられています。 編集または回答するには再度開いてください。

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

1 回表示 (過去 30 日間)
Steven Landis
Steven Landis 2018 年 6 月 27 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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

回答 (0 件)

この質問は閉じられています。

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by