2016-07-26 12 views
2

基本的に私は本当に複雑なMatlab GUIを持っています。ここで、ユーザーはeditextbox(入力可能なもの)によって異なる文字列を追加できます。問題は、異なるキーボードボタンのプッシュダウンに異なる機能を割り当てたことです。たとえば、 's'や 'e'が使用されています。例えば ​​'snake'のように入力しようとするたびに、 's'と 'e'に割り当てられた関数が実行されます。私がedittextboxをクリックしたことを判断する方法はありますか?それは使用中です - 論理値のように、私はそれをチェックすることによってkeypressfunctionsをブロックすることができます。MATLAB GUIのedittextboxが使用されているかどうかを確認してください

答えて

0

コールバック内では、gcoを使用して現在のオブジェクトを取得できます。次に、これが編集ボックスのグラフィックスハンドルであるかどうかを確認できます。一方、あなたはグローバルキーを押したときのコールバックを設定しなかった場合は

fig = figure('WindowKeyPressFcn', @(s,e)keypress()); 

hedit = uicontrol('Style', 'edit'); 

function keypress() 
    if ~isequal(gco, hedit) 
     disp('Window Key Press') 
    end 
end 

だけでエディットボックスの異なる(あるいはまったく)KeyPressFcnを指定していない、(WindowKeyPressFcnを使用して)、あなたは代わりに個別にuicontrolKeyPressFcnを設定うまくいくでしょう。

+0

ありがとうございました! マイボタンのコールバックはグローバルでした。 –

関連する問題