Reference version

This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 55).

SecureField

一个用于密码输入的 SwiftUI SecureField 组件。

iOS
tvOS

For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

Expo UI SecureField 与官方 SwiftUI SecureField API 保持一致,并提供一个可对密码及其他敏感文本的用户输入进行掩码处理的文本字段。

安装

Terminal
npx expo install @expo/ui

If you are installing this in an existing React Native app, make sure to install expo in your project.

用法

基本安全字段

BasicSecureFieldExample.tsx
import { useState } from 'react'; import { Host, SecureField } from '@expo/ui/swift-ui'; export default function BasicSecureFieldExample() { const [password, setPassword] = useState(''); return ( <Host matchContents> <SecureField placeholder="密码" onValueChange={setPassword} /> </Host> ); }

提交处理

使用 submitLabelonSubmit 修饰符来处理来自键盘的表单提交。

SecureFieldSubmitExample.tsx
import { useState } from 'react'; import { Host, SecureField } from '@expo/ui/swift-ui'; import { submitLabel, onSubmit } from '@expo/ui/swift-ui/modifiers'; export default function SecureFieldSubmitExample() { const [password, setPassword] = useState(''); return ( <Host matchContents> <SecureField placeholder="密码" onValueChange={setPassword} modifiers={[submitLabel('done'), onSubmit(() => console.log('Login submitted'))]} /> </Host> ); }

命令式 ref

使用 ref 以命令式方式设置安全字段的文本、聚焦或失焦。

ImperativeSecureFieldExample.tsx
import { useRef } from 'react'; import { Host, SecureField, SecureFieldRef, Button, HStack, VStack } from '@expo/ui/swift-ui'; import { buttonStyle } from '@expo/ui/swift-ui/modifiers'; export default function ImperativeSecureFieldExample() { const ref = useRef<SecureFieldRef>(null); return ( <Host matchContents> <VStack> <SecureField ref={ref} placeholder="密码" /> <HStack spacing={12}> <Button modifiers={[buttonStyle('bordered')]} onPress={() => ref.current?.focus()} label="聚焦" /> <Button modifiers={[buttonStyle('bordered')]} onPress={() => ref.current?.blur()} label="失焦" /> <Button modifiers={[buttonStyle('bordered')]} onPress={() => ref.current?.setText('secret123')} label="设置文本" /> </HStack> </VStack> </Host> ); }

API

import { SecureField } from '@expo/ui/swift-ui';

Component

SecureField

iOS
tvOS

Type: React.Element<SecureFieldProps>

Renders a SwiftUI SecureField for password input.

SecureFieldProps

autoFocus

iOS
tvOS
Optional • Type: boolean • Default: false

If true, the field will be focused automatically when mounted.

defaultValue

iOS
tvOS
Optional • Type: string

Initial value displayed when mounted. Uncontrolled — change key to reset.

onFocusChange

iOS
tvOS
Optional • Type: (focused: boolean) => void

A callback triggered when the field gains or loses focus.

onValueChange

iOS
tvOS
Optional • Type: (value: string) => void

A callback triggered when the text value changes.

placeholder

iOS
tvOS
Optional • Type: string

A text that is displayed when the field is empty.

ref

iOS
tvOS
Optional • Type: Ref<SecureFieldRef>

Types

SecureFieldRef

iOS
tvOS

Can be used for imperatively setting text and focus on the SecureField component.

PropertyTypeDescription
blur() => Promise<void>
-
focus() => Promise<void>
-
setText(newText: string) => Promise<void>
-