---
title: "DroppyShelfTextField, DroppyKit"
description: "A text field on the shelf (DroppyKit 1.23.0): the native rounded field, its system border and focus ring kept, in the mount&#x27;s body type."
canonical: "https://getdroppy.app/docs/droppykit/api/droppy-shelf-text-field"
last-updated: "2026-09-09"
---

# DroppyShelfTextField

A text field on the shelf (DroppyKit 1.23.0): the native rounded field, its system border and focus ring kept, in the mount's body type.

`@MainActor struct DroppyShelfTextField`

A text field on the shelf (DroppyKit 1.23.0): the native rounded field, its system border and focus ring kept, in the mount's body type. Never a capsule or a fill of your own.

A widget whose primary surface is a field declares [`keyboardFocusable`](https://getdroppy.app/docs/droppykit/api/shelf-widget-focus-policy#keyboard-focusable), so the shelf makes its panel key when the widget opens alone.

Available from DroppyKit 1.23.0.

## Initializers

### init(_:text:dso:onSubmit:)

`@MainActor init(_ placeholder: String, text: Binding<String>, dso: UnsafeRawPointer = #dsohandle, onSubmit: @escaping () -> Void = {})`

Creates the field.

- Parameters:
- placeholder: The prompt, which is also its accessibility name, looked up in your droplet's own String Catalog first.
- text: The text.
- dso: Filled in by the compiler; never pass it.
- onSubmit: Return.

## Properties

### body

`@MainActor var body: some View { get }`
