エディットテキストのフォーカスを失ったときに、特定のコールバック処理を実行できませんか?
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 8 de Sept. de 2017
Respondida: MathWorks Support Team
el 8 de Sept. de 2017
Uicontrol の エディタブル テキスト ボックスから、マウスを別のオブジェクトに移したタイミングで、特定の処理を実行したいと思います。フォーカスが移ったことを検知することができるか、教えてください。
Respuesta aceptada
MathWorks Support Team
el 8 de Sept. de 2017
エディタブル テキスト ボックス の Callback は、
・エディットテキストから別のコンポーネントにフォーカスが移動したとき
・エディットテキストにフォーカスがある状態で Enter キー(複数行入力対応の場合、Enter + Ctrl )が入力されたとき
に実行されます。
フォーカスが移ったときのみに動作するコールバック関数はありませんが、代替案として、Callback 関数内で、最後に入力されたキーを識別し、Enter キーでなければ、 フォーカスが移ったと判断する方法が考えられます。
以下のサンプルコードは、その例です。
エディタブル テキスト ボックスの Callback 関数内で Figure の CurrentCharacter プロパティを用いて、最後に入力されたキーを識別します。これにより、エディタブル テキスト ボックス 内で Enter キーを押下する場合と、フォーカスを移す場合で、コールバックの処理が変わります。
(edit_off_samp.m)
function edit_off_samp
h_figure = figure;
h_edit = uicontrol('Style','edit','Callback',@edit_callback); % エディタブル テキスト ボックス作成
function edit_callback(src,event)
% コールバック関数の定義
CK = get(h_figure, 'CurrentCharacter'); % 最後のキーの取得
if isequal(double(CK),13) % Enter キーの場合
disp('Pressed Enter Key')
else
disp('Focus off')
end
end
end
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Application Deployment en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!