エディットテキストのフォーカスを失ったときに、特定のコールバック処理を実行できませんか?
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 8 Sep. 2017
Beantwortet: MathWorks Support Team
am 8 Sep. 2017
Uicontrol の エディタブル テキスト ボックスから、マウスを別のオブジェクトに移したタイミングで、特定の処理を実行したいと思います。フォーカスが移ったことを検知することができるか、教えてください。
Akzeptierte Antwort
MathWorks Support Team
am 8 Sep. 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Application Deployment finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!