# TextField

> Makes a text field.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.0/script-reference/unityeditor.md)
* **Assembly:** UnityEditor

## TextField(Rect, string, GUIStyle)

Makes a text field.

```csharp
public static string TextField(Rect position, string text, GUIStyle style)
```

### Parameters

**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Rectangle on the screen to use for the text field.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The text to edit.**** (\[GUIStyle]\(/engine/6000.0/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.0/script-reference/unityengine/guistyle.md).

### Returns

| Type                                                           | Description                   |
| -------------------------------------------------------------- | ----------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | The text entered by the user. |

### Remarks

This works just like [GUI.TextField](/engine/6000.0/script-reference/unityengine/gui/textfield.md), but correctly responds to select all, copy, paste etc. in the editor, and it can have an optional label in front.

![EditorGUITextField (TextField)](/api/media?file=/engine/6000.0/media/images/EditorGUITextField.png)

*Text field in an Editor Window.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

// Changes the name of the selected Objects to the one typed in the text field

class EditorGUITextField : EditorWindow
{
    string objNames = "";

    [MenuItem("Examples/Bulk Name change")]
    static void Init()
    {
        var window = GetWindow<EditorGUITextField>();
        window.Show();
    }

    void OnGUI()
    {
        EditorGUI.DropShadowLabel(new Rect(0, 0, position.width, 20),
            "Select the objects to rename.");

        objNames = EditorGUI.TextField(new Rect(10, 25, position.width - 20, 20),
            "New Names:",
            objNames);

        if (Selection.activeTransform)
        {
            if (GUI.Button(new Rect(0, 50, position.width, 30), "Bulk rename!"))
            {
                foreach (Transform t in Selection.transforms)
                {
                    t.name = objNames;
                }
            }
        }
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }
}
```

## TextField(Rect, string, string, GUIStyle)

Makes a text field.

```csharp
public static string TextField(Rect position, string label, string text, GUIStyle style)
```

### Parameters

**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Rectangle on the screen to use for the text field.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Optional label to display in front of the text field.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The text to edit.**** (\[GUIStyle]\(/engine/6000.0/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.0/script-reference/unityengine/guistyle.md).

### Returns

| Type                                                           | Description                   |
| -------------------------------------------------------------- | ----------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | The text entered by the user. |

### Remarks

This works just like [GUI.TextField](/engine/6000.0/script-reference/unityengine/gui/textfield.md), but correctly responds to select all, copy, paste etc. in the editor, and it can have an optional label in front.

![EditorGUITextField (TextField)](/api/media?file=/engine/6000.0/media/images/EditorGUITextField.png)

*Text field in an Editor Window.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

// Changes the name of the selected Objects to the one typed in the text field

class EditorGUITextField : EditorWindow
{
    string objNames = "";

    [MenuItem("Examples/Bulk Name change")]
    static void Init()
    {
        var window = GetWindow<EditorGUITextField>();
        window.Show();
    }

    void OnGUI()
    {
        EditorGUI.DropShadowLabel(new Rect(0, 0, position.width, 20),
            "Select the objects to rename.");

        objNames = EditorGUI.TextField(new Rect(10, 25, position.width - 20, 20),
            "New Names:",
            objNames);

        if (Selection.activeTransform)
        {
            if (GUI.Button(new Rect(0, 50, position.width, 30), "Bulk rename!"))
            {
                foreach (Transform t in Selection.transforms)
                {
                    t.name = objNames;
                }
            }
        }
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }
}
```

## TextField(Rect, GUIContent, string, GUIStyle)

Makes a text field.

```csharp
public static string TextField(Rect position, GUIContent label, string text, GUIStyle style)
```

### Parameters

**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Rectangle on the screen to use for the text field.**** (\[GUIContent]\(/engine/6000.0/script-reference/unityengine/guicontent)): Optional label to display in front of the text field.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The text to edit.**** (\[GUIStyle]\(/engine/6000.0/script-reference/unityengine/guistyle)): Optional [GUIStyle](/engine/6000.0/script-reference/unityengine/guistyle.md).

### Returns

| Type                                                           | Description                   |
| -------------------------------------------------------------- | ----------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | The text entered by the user. |

### Remarks

This works just like [GUI.TextField](/engine/6000.0/script-reference/unityengine/gui/textfield.md), but correctly responds to select all, copy, paste etc. in the editor, and it can have an optional label in front.

![EditorGUITextField (TextField)](/api/media?file=/engine/6000.0/media/images/EditorGUITextField.png)

*Text field in an Editor Window.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

// Changes the name of the selected Objects to the one typed in the text field

class EditorGUITextField : EditorWindow
{
    string objNames = "";

    [MenuItem("Examples/Bulk Name change")]
    static void Init()
    {
        var window = GetWindow<EditorGUITextField>();
        window.Show();
    }

    void OnGUI()
    {
        EditorGUI.DropShadowLabel(new Rect(0, 0, position.width, 20),
            "Select the objects to rename.");

        objNames = EditorGUI.TextField(new Rect(10, 25, position.width - 20, 20),
            "New Names:",
            objNames);

        if (Selection.activeTransform)
        {
            if (GUI.Button(new Rect(0, 50, position.width, 30), "Bulk rename!"))
            {
                foreach (Transform t in Selection.transforms)
                {
                    t.name = objNames;
                }
            }
        }
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }
}
```
