エディットテキストのフォーカスを失ったときに、特定のコールバック処理を実行できませんか?
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 8 Sep 2017
Réponse apportée : MathWorks Support Team
le 8 Sep 2017
Uicontrol の エディタブル テキスト ボックスから、マウスを別のオブジェクトに移したタイミングで、特定の処理を実行したいと思います。フォーカスが移ったことを検知することができるか、教えてください。
Réponse acceptée
MathWorks Support Team
le 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Application Deployment dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!