瀏覽代碼

Merge pull request #10938 from ProgrammerOnCoffee/update-gui-navigation-code-example

Add `call_deferred` to UI Navigation code example
Matthew 1 月之前
父節點
當前提交
644f0667cd
共有 1 個文件被更改,包括 8 次插入5 次删除
  1. 8 5
      tutorials/ui/gui_navigation.rst

+ 8 - 5
tutorials/ui/gui_navigation.rst

@@ -58,22 +58,25 @@ have well-defined vertical or horizontal navigation flow.
 Necessary code
 Necessary code
 --------------
 --------------
 
 
-For keyboard and controller navigation to work correctly, any node must be focused on
+For keyboard and controller navigation to work correctly, any node must be focused by
 using code when the scene starts. Without doing this, pressing buttons or keys won't
 using code when the scene starts. Without doing this, pressing buttons or keys won't
-do anything. Here is a basic example of setting initial focus with code:
+do anything.
+
+You can use the :ref:`Control.grab_focus() <class_Control_method_grab_focus>` method
+to focus a control. Here is a basic example of setting initial focus with code:
 
 
 .. tabs::
 .. tabs::
  .. code-tab:: gdscript GDScript
  .. code-tab:: gdscript GDScript
 
 
     func _ready():
     func _ready():
-        $StartButton.grab_focus()
+        $StartButton.grab_focus.call_deferred()
 
 
  .. code-tab:: csharp
  .. code-tab:: csharp
 
 
     public override void _Ready()
     public override void _Ready()
     {
     {
-        GetNode<Button>("StartButton").GrabFocus();
+        GetNode<Button>("StartButton").GrabFocus.CallDeferred();
     }
     }
 
 
-Now when the scene starts the "Start Button" node will be focused, and the keyboard
+Now when the scene starts, the "Start Button" node will be focused, and the keyboard
 or a controller can be used to navigate between it and other UI elements.
 or a controller can be used to navigate between it and other UI elements.