# TextInput Accessible single- and multi-line text input via a keyboard. Supports features such as auto-complete, auto-focus, placeholder text, and event callbacks. Note: some props are exclusive to or excluded from `multiline`. Unsupported React Native props: `onEndEditing`, `clearButtonMode` (ios), `enablesReturnKeyAutomatically` (ios), `placeholderTextColor`, `returnKeyType` (ios), `selectionState` (ios), `underlineColorAndroid` (android) ## Props [...View props](./View.md) **autoCapitalize**: oneOf('characters', 'none', 'sentences', 'words') = 'sentences' Automatically capitalize certain characters (only available in Chrome and iOS Safari). * `characters`: Automatically capitalize all characters. * `none`: Completely disables automatic capitalization * `sentences`: Automatically capitalize the first letter of sentences. * `words`: Automatically capitalize the first letter of words. (web) **autoComplete**: string Indicates whether the value of the control can be automatically completed by the browser. [Accepted values](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input). **autoCorrect**: bool = true Automatically correct spelling mistakes (only available in iOS Safari). **autoFocus**: bool = false If `true`, focuses the input on `componentDidMount`. Only the first form element in a document with `autofocus` is focused. **blurOnSubmit**: bool If `true`, the text field will blur when submitted. The default value is `true` for single-line fields and `false` for multiline fields. Note, for multiline fields setting `blurOnSubmit` to `true` means that pressing return will blur the field and trigger the `onSubmitEditing` event instead of inserting a newline into the field. **clearTextOnFocus**: bool = false If `true`, clears the text field automatically when focused. **defaultValue**: string Provides an initial value that will change when the user starts typing. Useful for simple use-cases where you don't want to deal with listening to events and updating the `value` prop to keep the controlled state in sync. **editable**: bool = true If `false`, text is not editable (i.e., read-only). **keyboardType**: oneOf('default', 'email-address', 'numeric', 'phone-pad', 'search', 'url', 'web-search') = 'default' Determines which keyboard to open. (NOTE: Safari iOS requires an ancestral `