> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# ImGuiWindow.InputText

> Appends a single-line ImGui InputText element to an ImGuiWindow and stores the callback. The initial text is read with optional string handling and copied into the element's fixed 256-byte text buffer. When the rendered input changes, the callback is queued and later invoked with the current string. The method returns the same ImGuiWindow object.

<div className="real-function-page">
  ```lua theme={null}
  ImGuiWindow.InputText(window: ImGuiWindow, label: string, text?: string, onChange: function): ImGuiWindow
  ```

  ## Arguments

  <ParamField path={"window"} type={"ImGuiWindow"} required>
    ImGuiWindow object returned by imgui.create. A destroyed or invalid window raises a Lua error.
  </ParamField>

  <ParamField path={"label"} type={"string"} required>
    Input label string passed to the rendered ImGui InputText widget.
  </ParamField>

  <ParamField path={"text"} type={"string"}>
    Initial text read with optional string handling. Pass nil here when you want the default empty string while still supplying onChange as argument 4.
  </ParamField>

  <ParamField path={"onChange"} type={"function"} required>
    Function stored for this input and invoked with the current string after an edit event is processed. It must be supplied as argument 4.
  </ParamField>

  ## Returns

  <ResponseField name={"window"} type={"ImGuiWindow"}>
    The same ImGuiWindow object, allowing chained method calls.
  </ResponseField>

  ## Types

  ### ImGuiWindow

  Handle returned by imgui.create. Control-building methods return the same handle so calls can be chained.

  | Name               | Type                                                                                                                                            | Required | Description                                                                                         |
  | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------- |
  | `Button`           | `(label: string, onClick: () -> ()) -> ImGuiWindow`                                                                                             | Yes      | Appends a button and queues the callback with no arguments after a click.                           |
  | `Checkbox`         | `(label: string, checked: any, onChange: (boolean) -> ()) -> ImGuiWindow`                                                                       | Yes      | Appends a checkbox initialized from the checked value.                                              |
  | `CollapsingHeader` | `(label: string, content: (ImGuiWindow) -> ()) -> ImGuiWindow`                                                                                  | Yes      | Immediately runs content to append elements that render under a collapsible header.                 |
  | `ColorPicker`      | `(label: string, red: number?, green: number?, blue: number?, alpha: number?, onChange: (number, number, number, number) -> ()) -> ImGuiWindow` | Yes      | Appends a ColorEdit4-backed RGBA editor; onChange is read from argument 7.                          |
  | `InputText`        | `(label: string, text: string?, onChange: (string) -> ()) -> ImGuiWindow`                                                                       | Yes      | Appends a single-line InputText using a fixed 256-byte buffer; onChange is argument 4.              |
  | `SameLine`         | `() -> ImGuiWindow`                                                                                                                             | Yes      | Appends a SameLine layout marker that calls same-line layout during rendering.                      |
  | `Separator`        | `() -> ImGuiWindow`                                                                                                                             | Yes      | Appends a Separator marker that calls a separator during rendering.                                 |
  | `SliderFloat`      | `(label: string, value: number, minimum: number, maximum: number, onChange: (number) -> ()) -> ImGuiWindow`                                     | Yes      | Appends a SliderFloat element and queues onChange with one Lua number when the value changes.       |
  | `SliderInt`        | `(label: string, value: integer, minimum: integer, maximum: integer, onChange: (number) -> ()) -> ImGuiWindow`                                  | Yes      | Appends a SliderInt element and queues onChange with one Lua number when the integer value changes. |
  | `Text`             | `(text: string) -> ImGuiWindow`                                                                                                                 | Yes      | Appends a non-interactive text element.                                                             |
  | `destroy`          | `() -> ()`                                                                                                                                      | Yes      | Removes the window and releases its registered callbacks.                                           |
</div>
