앱에 텍스트를 입력하기 위한 기본 컴포넌트다. TextInput
은 자동 수정, 자동 대문자 변환, 플레이스홀더 텍스트, 숫자 키패드와 같은 다양한 키보드 타입 등 여러 기능을 설정할 수 있다.
가장 기본적인 사용법은 TextInput
을 배치하고 onChangeText
이벤트를 구독해 사용자 입력을 읽는 것이다. 또한 onSubmitEditing
과 onFocus
같은 다른 이벤트도 구독할 수 있다. 간단한 예제는 다음과 같다:
네이티브 엘리먼트를 통해 노출된 두 가지 메서드인 .focus()
와 .blur()
는 TextInput
을 프로그래밍 방식으로 포커스하거나 블러 처리한다.
일부 속성은 multiline={true/false}
일 때만 사용할 수 있다. 또한 borderBottomColor
, borderLeftWidth
와 같이 엘리먼트의 한쪽 면에만 적용되는 테두리 스타일은 multiline=true
일 때 적용되지 않는다. 같은 효과를 내려면 TextInput
을 View
로 감싸면 된다:
TextInput
은 기본적으로 뷰 하단에 테두리를 표시한다. 이 테두리의 패딩은 시스템이 제공하는 배경 이미지에 의해 설정되며 변경할 수 없다. 이를 해결하려면 높이를 명시적으로 설정하지 않거나, underlineColorAndroid
를 투명으로 설정해 테두리를 표시하지 않으면 된다.
안드로이드에서 입력란의 텍스트를 선택하면 앱의 windowSoftInputMode
매개변수가 adjustResize
로 변경될 수 있다. 이로 인해 키보드가 활성화된 동안 position: 'absolute'
인 컴포넌트에 문제가 발생할 수 있다. 이 동작을 방지하려면 AndroidManifest.xml
에서 windowSoftInputMode
를 지정하거나 네이티브 코드로 이 매개변수를 프로그래밍 방식으로 제어하면 된다.
참조
Props
View Props
View Props를 상속한다.
allowFontScaling
폰트가 접근성 설정의 텍스트 크기를 반영하여 크기를 조정할지 여부를 지정한다. 기본값은 true
이다.
타입 |
---|
bool |
autoCapitalize
TextInput
에 특정 문자를 자동으로 대문자로 변환하도록 지시한다. 이 속성은 name-phone-pad
와 같은 일부 키보드 타입에서는 지원되지 않는다.
characters
: 모든 문자를 대문자로 변환한다.words
: 각 단어의 첫 글자를 대문자로 변환한다.sentences
: 각 문장의 첫 글자를 대문자로 변환한다 (기본값).none
: 자동 대문자 변환을 사용하지 않는다.
타입 |
---|
enum('none', 'sentences', 'words', 'characters') |
autoComplete
시스템에 자동 완성 힌트를 제공하여 자동 채우기를 활성화한다. 안드로이드에서는 시스템이 항상 휴리스틱을 사용해 콘텐츠 타입을 식별하고 자동 채우기를 시도한다. 자동 완성을 비활성화하려면 autoComplete
값을 off
로 설정한다.
다음 값은 모든 플랫폼에서 동작한다:
additional-name
address-line1
address-line2
birthdate-day
(iOS 17+)birthdate-full
(iOS 17+)birthdate-month
(iOS 17+)birthdate-year
(iOS 17+)cc-csc
(iOS 17+)cc-exp
(iOS 17+)cc-exp-day
(iOS 17+)cc-exp-month
(iOS 17+)cc-exp-year
(iOS 17+)cc-number
country
current-password
email
family-name
given-name
honorific-prefix
honorific-suffix
name
new-password
off
one-time-code
postal-code
street-address
tel
username
다음 값은 iOS에서만 동작한다:
cc-family-name
(iOS 17+)cc-given-name
(iOS 17+)cc-middle-name
(iOS 17+)cc-name
(iOS 17+)cc-type
(iOS 17+)nickname
organization
organization-title
url
다음 값은 안드로이드에서만 동작한다:
gender
name-family
name-given
name-middle
name-middle-initial
name-prefix
name-suffix
password
password-new
postal-address
postal-address-country
postal-address-extended
postal-address-extended-postal-code
postal-address-locality
postal-address-region
sms-otp
tel-country-code
tel-device
tel-national
username-new
타입 |
---|
enum('additional-name', 'address-line1', 'address-line2', 'birthdate-day', 'birthdate-full', 'birthdate-month', 'birthdate-year', 'cc-csc', 'cc-exp', 'cc-exp-day', 'cc-exp-month', 'cc-exp-year', 'cc-number', 'country', 'current-password', 'email', 'family-name', 'given-name', 'honorific-prefix', 'honorific-suffix', 'name', 'new-password', 'off', 'one-time-code', 'postal-code', 'street-address', 'tel', 'username', 'cc-family-name', 'cc-given-name', 'cc-middle-name', 'cc-name', 'cc-type', 'nickname', 'organization', 'organization-title', 'url', 'gender', 'name-family', 'name-given', 'name-middle', 'name-middle-initial', 'name-prefix', 'name-suffix', 'password', 'password-new', 'postal-address', 'postal-address-country', 'postal-address-extended', 'postal-address-extended-postal-code', 'postal-address-locality', 'postal-address-region', 'sms-otp', 'tel-country-code', 'tel-device', 'tel-national', 'username-new') |
autoCorrect
가 false
로 설정되면 자동 수정 기능이 비활성화된다. 기본값은 true
이다.
타입 |
---|
bool |
autoFocus
는 입력 필드에 자동으로 포커스를 맞출지 여부를 결정한다. 기본값은 false
다.
타입 |
---|
bool |
blurOnSubmit
더 이상 사용되지 않음.
submitBehavior
가blurOnSubmit
을 대체하며,blurOnSubmit
에 정의된 모든 동작을 무시한다. 자세한 내용은 submitBehavior를 참조한다.
true
로 설정하면, 텍스트 필드가 제출될 때 포커스가 사라진다. 기본값은 단일 행 필드의 경우 true
, 여러 행 필드의 경우 false
이다. 여러 행 필드에서 blurOnSubmit
을 true
로 설정하면, 엔터 키를 누를 때 필드의 포커스가 사라지고 onSubmitEditing
이벤트가 트리거되며, 새로운 줄이 삽입되지 않는다.
타입 |
---|
bool |
caretHidden
은 커서를 숨길지 여부를 결정한다. 기본값은 false
로 설정되어 있다.
타입 |
---|
bool |
clearButtonMode
iOS
텍스트 뷰 오른쪽에 지우기 버튼이 언제 나타날지 설정한다. 이 속성은 한 줄짜리 TextInput 컴포넌트에서만 지원된다. 기본값은 never
이다.
타입 |
---|
enum('never', 'while-editing', 'unless-editing', 'always') |
clearTextOnFocus
iOS
true
로 설정하면 편집이 시작될 때 텍스트 필드의 내용이 자동으로 지워진다.
타입 |
---|
bool |
contextMenuHidden
이 값이 true
면 컨텍스트 메뉴가 숨겨진다. 기본값은 false
이다.
타입 |
---|
bool |
dataDetectorTypes
iOS
텍스트 입력에서 클릭 가능한 URL로 변환할 데이터 타입을 결정한다. multiline={true}
이고 editable={false}
일 때만 유효하다. 기본적으로 어떤 데이터 타입도 감지하지 않는다.
단일 타입 또는 여러 타입의 배열을 제공할 수 있다.
dataDetectorTypes
의 가능한 값은 다음과 같다:
'phoneNumber'
'link'
'address'
'calendarEvent'
'none'
'all'
타입 |
---|
enum('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all'), ,array of enum('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all') |
defaultValue
는 사용자가 입력을 시작하기 전에 초기값을 제공한다. 이 값은 사용자가 타이핑을 시작하면 변경된다. 이 기능은 이벤트를 수신하거나 제어된 상태를 동기화하기 위해 value
prop을 업데이트하는 작업을 처리하고 싶지 않은 경우에 유용하다.
타입 |
---|
string |
cursorColor
Android
이 속성을 지정하면 컴포넌트 내 커서(또는 "캐럿")의 색상을 설정한다. selectionColor
와 달리, 커서 색상은 텍스트 선택 박스의 색상과 독립적으로 설정된다.
타입 |
---|
color |
disableFullscreenUI
Android
이 값을 false
로 설정하면, 텍스트 입력 주변에 사용 가능한 공간이 적을 때(예: 휴대폰의 가로 방향), 운영체제는 전체 화면 텍스트 입력 모드에서 사용자가 텍스트를 편집하도록 선택할 수 있다. 이 값을 true
로 설정하면 이 기능이 비활성화되고, 사용자는 항상 텍스트 입력 필드 내에서 직접 텍스트를 편집하게 된다. 기본값은 false
이다.
타입 |
---|
bool |
editable
이 false
로 설정되면 텍스트를 편집할 수 없다. 기본값은 true
이다.
타입 |
---|
bool |
enablesReturnKeyAutomatically
iOS
true
로 설정하면, 텍스트가 없을 때 키보드의 리턴 키를 비활성화하고 텍스트가 입력되면 자동으로 활성화한다. 기본값은 false
이다.
타입 |
---|
bool |
enterKeyHint
엔터 키에 표시할 텍스트를 결정한다. returnKeyType
속성보다 우선 순위가 높다.
다음 값들은 모든 플랫폼에서 동작한다:
enter
done
next
search
send
안드로이드 전용
다음 값들은 안드로이드에서만 동작한다:
previous
타입 |
---|
enum('enter', 'done', 'next', 'previous', 'search', 'send') |
importantForAutofill
Android
앱의 개별 필드가 Android API 레벨 26 이상에서 자동 채우기 목적으로 뷰 구조에 포함되어야 하는지 여부를 운영체제에 알린다. 가능한 값은 auto
, no
, noExcludeDescendants
, yes
, yesExcludeDescendants
이다. 기본값은 auto
이다.
auto
: Android 시스템이 자체적인 휴리스틱을 사용해 뷰가 자동 채우기에 중요한지 여부를 결정한다.no
: 이 뷰는 자동 채우기에 중요하지 않다.noExcludeDescendants
: 이 뷰와 그 하위 뷰들은 자동 채우기에 중요하지 않다.yes
: 이 뷰는 자동 채우기에 중요하다.yesExcludeDescendants
: 이 뷰는 자동 채우기에 중요하지만, 그 하위 뷰들은 중요하지 않다.
타입 |
---|
enum('auto', 'no', 'noExcludeDescendants', 'yes', 'yesExcludeDescendants') |
inlineImageLeft
Android
이 속성을 정의하면 제공된 이미지 리소스가 왼쪽에 렌더링된다. 이미지 리소스는 /android/app/src/main/res/drawable
디렉토리 안에 위치해야 하며, 다음과 같이 참조한다.
<TextInput
inlineImageLeft='search_icon'
/>
타입 |
---|
string |
inlineImagePadding
Android
인라인 이미지와 텍스트 입력 필드 사이의 패딩을 설정한다. 이미지가 있을 경우에만 적용된다.
타입 |
---|
number |
inputAccessoryViewID
iOS
이 텍스트 입력에 커스텀 InputAccessoryView를 연결하는 선택적 식별자이다. 이 텍스트 입력에 포커스가 있을 때, InputAccessoryView는 키보드 위에 렌더링된다.
타입 |
---|
string |
inputMode
HTML의 inputmode
속성과 동일하게 동작한다. 어떤 키보드를 열지 결정하며, 예를 들어 numeric
값을 사용할 수 있다. keyboardType
보다 우선순위가 높다.
다음 값을 지원한다:
none
text
decimal
numeric
tel
search
email
url
타입 |
---|
enum('decimal', 'email', 'none', 'numeric', 'search', 'tel', 'text', 'url') |
keyboardAppearance
iOS
키보드의 색상을 결정한다.
타입 |
---|
enum('default', 'light', 'dark') |
keyboardType
어떤 키보드를 열지 결정한다. 예를 들어 numeric
을 사용하면 숫자 키보드가 열린다.
모든 타입의 스크린샷은 여기에서 확인할 수 있다.
다음 값들은 모든 플랫폼에서 동작한다:
default
number-pad
decimal-pad
numeric
email-address
phone-pad
url
iOS 전용
다음 값들은 iOS에서만 동작한다:
ascii-capable
numbers-and-punctuation
name-phone-pad
twitter
web-search
Android 전용
다음 값들은 Android에서만 동작한다:
visible-password
타입 |
---|
enum('default', 'email-address', 'numeric', 'phone-pad', 'ascii-capable', 'numbers-and-punctuation', 'url', 'number-pad', 'name-phone-pad', 'decimal-pad', 'twitter', 'web-search', 'visible-password') |
maxFontSizeMultiplier
allowFontScaling
이 활성화된 상태에서 폰트가 도달할 수 있는 최대 크기 비율을 지정한다. 가능한 값은 다음과 같다:
null/undefined
(기본값): 부모 노드나 전역 기본값을 상속받음 (0)0
: 최대값 없음, 부모/전역 기본값 무시>= 1
: 이 노드의maxFontSizeMultiplier
를 해당 값으로 설정
타입 |
---|
number |
maxLength
입력할 수 있는 최대 문자 수를 제한한다. 이 기능을 사용하면 JS에서 로직을 구현할 때 발생할 수 있는 깜빡임 현상을 방지할 수 있다.
타입 |
---|
number |
multiline
이 값을 true
로 설정하면 텍스트 입력을 여러 줄로 할 수 있다. 기본값은 false
다.
iOS에서는 텍스트가 상단에 정렬되고, Android에서는 중앙에 정렬된다. 두 플랫폼에서 동일하게 동작하게 하려면 textAlignVertical
을 top
으로 설정해야 한다.
타입 |
---|
bool |
numberOfLines
Android
TextInput
에 표시할 줄 수를 설정한다. 여러 줄 입력이 가능하도록 multiline
을 true
로 설정한 후 사용한다.
타입 |
---|
number |
onBlur
텍스트 입력 필드가 포커스를 잃을 때 호출되는 콜백 함수이다.
참고:
nativeEvent
에서text
값을 가져오려는 경우, 결과 값이undefined
가 될 수 있음을 유의한다. 이는 의도치 않은 오류를 발생시킬 수 있다. TextInput의 마지막 값을 찾으려면, 편집이 완료될 때 발생하는onEndEditing
이벤트를 사용할 수 있다.
타입 |
---|
function |
onChange
텍스트 입력값이 변경될 때 호출되는 콜백 함수이다.
타입 |
---|
({nativeEvent: {eventCount, target, text}} ) => void |
onChangeText
텍스트 입력의 내용이 변경될 때 호출되는 콜백 함수. 변경된 텍스트는 문자열 인자로 콜백 핸들러에 전달된다.
타입 |
---|
function |
onContentSizeChange
텍스트 입력의 내용 크기가 변경될 때 호출되는 콜백 함수.
다중 행 텍스트 입력에서만 호출된다.
타입 |
---|
({nativeEvent: {contentSize: {width, height} }} ) => void |
onEndEditing
텍스트 입력이 끝날 때 호출되는 콜백 함수이다.
타입 |
---|
function |
onPressIn
터치가 시작될 때 호출되는 콜백 함수이다.
타입 |
---|
({nativeEvent: PressEvent}) => void |
onPressOut
터치를 해제했을 때 호출되는 콜백 함수이다.
타입 |
---|
({nativeEvent: PressEvent}) => void |
onFocus
텍스트 입력이 포커스될 때 호출되는 콜백 함수이다.
타입 |
---|
({nativeEvent: LayoutEvent}) => void |
onKeyPress
키를 누를 때 호출되는 콜백 함수다. 이 함수는 객체를 인자로 받는데, keyValue
는 'Enter'
나 'Backspace'
같은 특정 키에 해당하거나, 그 외에는 입력된 문자를 나타낸다. 공백 문자인 경우 ' '
로 전달된다. 이 콜백은 onChange
콜백보다 먼저 실행된다. 주의: 안드로이드에서는 소프트 키보드 입력만 처리되며, 하드웨어 키보드 입력은 처리되지 않는다.
타입 |
---|
({nativeEvent: {key: keyValue} } ) => void |
onLayout
마운트 시와 레이아웃 변경 시 호출된다.
타입 |
---|
({nativeEvent: LayoutEvent}) => void |
onScroll
콘텐츠 스크롤 시 호출된다. ScrollEvent
의 다른 속성도 포함될 수 있지만, 안드로이드에서는 성능상의 이유로 contentSize
가 제공되지 않는다.
타입 |
---|
({nativeEvent: {contentOffset: {x, y} }} ) => void |
onSelectionChange
텍스트 입력의 선택 영역이 변경될 때 호출되는 콜백 함수이다.
타입 |
---|
({nativeEvent: {selection: {start, end} }} ) => void |
onSubmitEditing
텍스트 입력의 제출 버튼을 눌렀을 때 호출되는 콜백 함수이다.
타입 |
---|
({nativeEvent: {text, eventCount, target}} ) => void |
iOS에서는 keyboardType="phone-pad"
를 사용할 때 이 메서드가 호출되지 않는다는 점에 유의한다.
입력 필드에 텍스트가 입력되기 전에 표시될 문자열이다.
타입 |
---|
string |
placeholderTextColor
플레이스홀더 문자열의 텍스트 색상을 지정한다.
타입 |
---|
color |
readOnly
true
로 설정하면 텍스트를 편집할 수 없다. 기본값은 false
이다.
타입 |
---|
bool |
returnKeyLabel
Android
리턴 키의 라벨을 설정한다. returnKeyType
대신 이 값을 사용한다.
타입 |
---|
string |
returnKeyType
리턴 키의 모양을 결정한다. 안드로이드에서는 returnKeyLabel
도 사용할 수 있다.
크로스 플랫폼
다음 값들은 모든 플랫폼에서 동작한다:
done
go
next
search
send
안드로이드 전용
다음 값들은 안드로이드에서만 동작한다:
none
previous
iOS 전용
다음 값들은 iOS에서만 동작한다:
default
emergency-call
google
join
route
yahoo
타입 |
---|
enum('done', 'go', 'next', 'search', 'send', 'none', 'previous', 'default', 'emergency-call', 'google', 'join', 'route', 'yahoo') |
rejectResponderTermination
iOS
true
로 설정하면, TextInput이 터치 이벤트를 부모 컴포넌트로 전달할 수 있다. 이는 SwipeableListView와 같은 컴포넌트가 TextInput에서도 스와이프 가능하도록 해준다. 안드로이드에서는 기본적으로 이 동작이 허용되지만, iOS에서는 이 옵션을 통해 동일한 기능을 구현할 수 있다. false
로 설정하면, TextInput은 항상 입력 처리를 요청한다(비활성화 상태일 때는 제외). 기본값은 true
이다.
타입 |
---|
bool |
rows
Android
TextInput
의 행 수를 설정한다. 여러 줄 입력이 가능하도록 하려면 multiline
을 true
로 설정하고 이 속성을 사용한다.
타입 |
---|
number |
scrollEnabled
iOS
false
로 설정하면 텍스트 뷰의 스크롤이 비활성화된다. 기본값은 true
이다. 이 속성은 multiline={true}
일 때만 동작한다.
타입 |
---|
bool |
secureTextEntry
이 값을 true
로 설정하면 텍스트 입력 시 내용이 가려져 비밀번호와 같은 민감한 정보를 안전하게 보호할 수 있다. 기본값은 false
이다. multiline={true}
와 함께 사용할 수 없다.
타입 |
---|
bool |
selection
텍스트 입력의 선택 영역 시작과 끝을 나타낸다. 커서를 특정 위치에 놓으려면 시작과 끝 값을 동일하게 설정한다.
타입 |
---|
객체: {start: number, end: number} |
selectionColor
텍스트 입력 필드의 강조 표시, 선택 핸들, 커서 색상을 설정한다.
타입 |
---|
color |
selectionHandleColor
Android
선택 핸들의 색상을 설정한다. selectionColor
와 달리, 선택 영역의 색상과는 독립적으로 선택 핸들의 색상을 커스텀할 수 있다.
타입 |
---|
color |
selectTextOnFocus
이 값이 true
로 설정되면, 포커스를 받을 때 모든 텍스트가 자동으로 선택된다.
타입 |
---|
bool |
showSoftInputOnFocus
이 값을 false
로 설정하면 필드에 포커스가 갔을 때 소프트 키보드가 나타나지 않는다. 기본값은 true
이다.
타입 |
---|
bool |
spellCheck
iOS
false
로 설정하면 맞춤법 검사 스타일(예: 빨간색 밑줄)을 비활성화한다. 기본값은 autoCorrect
에서 상속받는다.
타입 |
---|
bool |
submitBehavior
는 엔터 키를 눌렀을 때의 동작을 정의한다.
단일 줄 입력 필드의 경우:
'newline'
은 기본적으로'blurAndSubmit'
으로 동작한다.undefined
는 기본적으로'blurAndSubmit'
으로 동작한다.
여러 줄 입력 필드의 경우:
'newline'
은 새로운 줄을 추가한다.undefined
는 기본적으로'newline'
으로 동작한다.
단일 줄 및 여러 줄 입력 필드 모두에서:
'submit'
은 제출 이벤트만 발생시키고 입력 필드의 포커스를 해제하지 않는다.'blurAndSubmit'
은 입력 필드의 포커스를 해제하고 제출 이벤트를 발생시킨다.
타입 |
---|
enum('submit', 'blurAndSubmit', 'newline') |
textAlign
입력 필드 내 텍스트를 왼쪽, 가운데, 오른쪽으로 정렬한다.
textAlign
에 사용 가능한 값은 다음과 같다:
left
center
right
타입 |
---|
enum('left', 'center', 'right') |
textContentType
iOS
사용자가 입력하는 콘텐츠의 의미를 키보드와 시스템에 알려준다.
autoComplete
는 모든 플랫폼에서 동일한 기능을 제공한다. 플랫폼별로 다른 동작이 필요할 경우 Platform.select
를 사용할 수 있다.
textContentType
과 autoComplete
를 동시에 사용하지 않는 것이 좋다. 하위 호환성을 위해 두 속성이 모두 설정된 경우 textContentType
이 우선 적용된다.
textContentType
을 username
또는 password
로 설정하면, 디바이스 키체인에서 로그인 정보를 자동으로 채울 수 있다.
newPassword
는 사용자가 키체인에 저장하려는 새 비밀번호 입력란을 나타내고, oneTimeCode
는 SMS로 도착한 코드를 자동으로 채울 수 있는 입력란을 나타낸다.
자동 채우기를 비활성화하려면 textContentType
을 none
으로 설정한다.
textContentType
의 가능한 값은 다음과 같다:
none
addressCity
addressCityAndState
addressState
birthdate
(iOS 17+)birthdateDay
(iOS 17+)birthdateMonth
(iOS 17+)birthdateYear
(iOS 17+)countryName
creditCardExpiration
(iOS 17+)creditCardExpirationMonth
(iOS 17+)creditCardExpirationYear
(iOS 17+)creditCardFamilyName
(iOS 17+)creditCardGivenName
(iOS 17+)creditCardMiddleName
(iOS 17+)creditCardName
(iOS 17+)creditCardNumber
creditCardSecurityCode
(iOS 17+)creditCardType
(iOS 17+)emailAddress
familyName
fullStreetAddress
givenName
jobTitle
location
middleName
name
namePrefix
nameSuffix
newPassword
nickname
oneTimeCode
organizationName
password
postalCode
streetAddressLine1
streetAddressLine2
sublocality
telephoneNumber
URL
username
Type |
---|
enum('none', 'addressCity', 'addressCityAndState', 'addressState', 'birthdate', 'birthdateDay', 'birthdateMonth', 'birthdateYear', 'countryName', 'creditCardExpiration', 'creditCardExpirationMonth', 'creditCardExpirationYear', 'creditCardFamilyName', 'creditCardGivenName', 'creditCardMiddleName', 'creditCardName', 'creditCardNumber', 'creditCardSecurityCode', 'creditCardType', 'emailAddress', 'familyName', 'fullStreetAddress', 'givenName', 'jobTitle', 'location', 'middleName', 'name', 'namePrefix', 'nameSuffix', 'newPassword', 'nickname', 'oneTimeCode', 'organizationName', 'password', 'postalCode', 'streetAddressLine1', 'streetAddressLine2', 'sublocality', 'telephoneNumber', 'URL', 'username') |
passwordRules
iOS
iOS에서 textContentType
을 newPassword
로 설정할 때, OS에게 비밀번호의 최소 요구 사항을 알려줄 수 있다. 이를 통해 해당 요구 사항을 충족하는 비밀번호를 생성할 수 있다. 유효한 PasswordRules
문자열을 만들기 위해서는 Apple Docs를 참고한다.
비밀번호 생성 대화 상자가 나타나지 않는다면 다음 사항을 확인한다:
- 자동 채우기가 활성화되어 있는지: 설정 → 암호 및 계정 → 암호 자동 채우기를 켠다.
- iCloud 키체인이 사용 중인지: 설정 → Apple ID → iCloud → 키체인 → iCloud 키체인을 켠다.
타입 |
---|
string |
style
속성 중 일부 텍스트 스타일은 지원되지 않는다. 지원되지 않는 스타일의 일부 목록은 다음과 같다:
borderLeftWidth
borderTopWidth
borderRightWidth
borderBottomWidth
borderTopLeftRadius
borderTopRightRadius
borderBottomRightRadius
borderBottomLeftRadius
타입 |
---|
텍스트 |
textBreakStrategy
Android
안드로이드 API 레벨 23 이상에서 텍스트 줄바꿈 전략을 설정한다. 가능한 값은 simple
, highQuality
, balanced
이며, 기본값은 highQuality
이다.
타입 |
---|
enum('simple', 'highQuality', 'balanced') |
underlineColorAndroid
TextInput
의 밑줄 색상을 지정한다.
타입 |
---|
color |
텍스트 입력란에 표시할 값을 나타낸다. TextInput
은 제어된 컴포넌트이므로, 이 value
prop이 제공되면 네이티브 값이 이 값과 강제로 일치하도록 설정된다. 대부분의 경우 이 방식은 잘 동작하지만, 특정 상황에서는 깜빡임 현상을 유발할 수 있다. 흔한 원인 중 하나는 값을 동일하게 유지함으로써 편집을 방지하는 경우이다. 깜빡임 없이 원치 않는 편집을 방지하려면 동일한 값을 설정하는 것 외에도 editable={false}
를 설정하거나 maxLength
를 설정/업데이트해야 한다.
타입 |
---|
string |
lineBreakStrategyIOS
iOS
iOS 14 이상에서 줄바꿈 전략을 설정한다. 가능한 값은 none
, standard
, hangul-word
, push-out
이다.
타입 | 기본값 |
---|---|
enum('none' , 'standard' , 'hangul-word' , 'push-out' ) | 'none' |
disableKeyboardShortcuts
iOS
true
로 설정하면 키보드 단축키(실행 취소/다시 실행 및 복사 버튼)가 비활성화된다. 기본값은 false
이다.
타입 |
---|
bool |
메서드
.focus()
focus();
네이티브 입력 엘리먼트에 포커스를 요청한다.
.blur()
blur();
이 메서드는 네이티브 입력 요소가 포커스를 잃게 한다.
clear()
clear();
TextInput
의 모든 텍스트를 제거한다.
isFocused()
isFocused(): boolean;
현재 입력이 포커스된 상태라면 true
를 반환하고, 그렇지 않으면 false
를 반환한다.
알려진 이슈
- react-native#19096: Android의
onKeyPreIme
를 지원하지 않는다. - react-native#19366: Android 키보드를 뒤로 가기 버튼으로 닫은 후 .focus()를 호출해도 키보드가 다시 나타나지 않는다.
- react-native#26799:
keyboardType="email-address"
또는keyboardType="phone-pad"
일 때 Android의secureTextEntry
를 지원하지 않는다.