Main Content

focus

UI コンポーネントにフォーカス

R2022a 以降

    構文

    説明

    focus(c) は、UI コンポーネント c にキーボード フォーカスを移します。

    UI コンポーネントで focus を呼び出すと次の効果があります。

    • そのコンポーネントを含む Figure が他のすべての Figure の前面に表示される。

    • その UI コンポーネントが青いフォーカス リング付きで表示される。

    • その UI コンポーネントをアプリ ユーザーがキーボードを使用して操作できる。

    すべて折りたたむ

    ラベル、ドロップダウン コンポーネント、および 2 つのボタンをもつ UI Figure を作成します。[OK] ボタンにキーボード フォーカスを移して既定のボタンにします。ユーザーは Enter キーまたはスペース キーを押すことで、そのボタンを押すことができます。

    fig = uifigure(Position=[500 500 300 100]);
    gl = uigridlayout(fig,[2 2]);
    
    lbl = uilabel(gl,Text="Select a color:");
    dd = uidropdown(gl,Items=["Red" "Green" "Blue"]);
    btn1 = uibutton(gl,Text="OK");
    btn2 = uibutton(gl,Text="Cancel");
    
    focus(btn1)

    UI figure window with a label, drop-down component, and two buttons. The OK button has a blue focus ring.

    現在のフォルダー内に新しいスクリプト ファイルを作成します。スクリプトで、UI Figure と 2 行のグリッド レイアウト マネージャーを作成します。最初の行にボタンを追加し、そのボタンをユーザーが押したときにアプリで createTextArea という名前のコールバック関数を実行するように指定します。そのボタンにキーボード フォーカスを移します。

    fig = uifigure(Position=[500 500 300 200]);
    gl = uigridlayout(fig);
    gl.RowHeight = ["1x" "3x"];
    gl.ColumnWidth = "1x";
    
    btn = uibutton(gl,Text="Enter Comment", ...
        ButtonPushedFcn=@createTextArea);
    focus(btn)
    

    ファイルの下部で関数 createTextArea を定義します。関数で、グリッド レイアウト マネージャーの 2 番目の行にテキスト エリアを作成します。次に、そのテキスト エリアにキーボード フォーカスを移します。

    function createTextArea(src,event)
    gl = src.Parent;
    ta = uitextarea(gl);
    focus(ta)
    end

    スクリプトを実行します。Enter キーを押すと ButtonPushedFcn コールバックが実行され、テキスト エリアが表示されてキーボード フォーカスが移ります。これにより、テキスト エリアに入力できます。

    UI figure window with a button and a text area. The text area has a blue focus ring.

    入力引数

    すべて折りたたむ

    Button オブジェクトや EditField オブジェクトなど、フォーカスを移す UI コンポーネント。

    フォーカス可能な UI コンポーネントとは、ユーザーがキーボードを使用して操作できる UI コンポーネントです。UI コンポーネントにはフォーカス可能でないものもあります。これには、ほとんどのコンテナーのほか、Enable または Visible'off' に設定されたコンポーネントが含まれます。

    バージョン履歴

    R2022a で導入