5 文本输入与输出
6 分钟阅读
原文链接: https://developer.apple.com/documentation/swiftui/text-input-and-output
5 文本输入与输出
显示格式化文本,并获取用户输入的文本。
概述
要显示只读文本,或显示与图像配对的只读文本,分别使用内置的 Text 或 Label 视图。当需要收集用户输入的文本时,使用合适的文本输入视图,例如 TextField 或 TextEditor。

你可以添加视图修饰符来控制文本的字体、可否选择、对齐方式、布局方向等。即使你没有显式定义 Text 视图,这些修饰符也会影响其他显示文本的视图,例如控件上的标签。
关于设计指导,请参阅 Human Interface Guidelines 中的 排版。
显示文本
- Text — 一种显示一行或多行只读文本的视图。
- Label — 用于用户界面项目的标准标签,由一个图标和一个标题组成。
- labelStyle(_:) — 设置该视图内标签的样式。
获取文本输入
- 构建丰富的 SwiftUI 文本体验 — 使用 SwiftUI 文本编辑器视图和属性字符串,构建用于格式化文本的编辑器。
- TextField — 一种显示可编辑文本界面的控件。
- textFieldStyle(_:) — 设置该视图内文本输入框的样式。
- SecureField — 一种让用户安全输入私密文本的控件。
- TextEditor — 一种可以显示并编辑长文本的视图。
选择文本
- textSelection(_:) — 控制人们是否可以在该视图中选择文本。
- TextSelectability — 描述选择文本能力的类型。
- TextSelection — 表示一段被选中的文本。
- textSelectionAffinity(_:) — 设置选区或光标相对于某个文本字符的方向。
- textSelectionAffinity — 选区或光标相对于某个文本字符的方向或关联关系的表示。在处理双向文本(同时包含从左到右和从右到左文字系统的文本,例如英文与阿拉伯文混排)时,这个概念会变得重要得多。
- TextSelectionAffinity — 选区或光标相对于某个文本字符的方向或关联关系的表示。在处理双向文本(同时包含从左到右和从右到左文字系统的文本,例如英文与阿拉伯文混排)时,这个概念会变得重要得多。
- AttributedTextSelection — 表示一段被选中的属性文本。
设置字体
- 为文本应用自定义字体 — 在应用中加入并使用一种可以随动态字体大小缩放的字体。
- font(_:) — 设置该视图中文本的默认字体。
- fontDesign(_:) — 设置该视图中文本的字体设计。
- fontWeight(_:) — 设置该视图中文本的字体粗细。
- fontWidth(_:) — 设置该视图中文本的字体宽度。
- font — 该环境的默认字体。
- Font — 一种依赖环境的字体。
调整文字大小
- textScale(_:isEnabled:) — 对视图中的文本应用文字缩放。
- dynamicTypeSize(_:) — 把视图内的动态字体大小设置为给定值。
- dynamicTypeSize — 当前的动态字体大小。
- DynamicTypeSize — 一种动态字体大小,指定可缩放内容应有多大。
- ScaledMetric — 一种动态属性,用于缩放数值。
- TextVariantPreference — 用于控制文本视图大小变体的协议。
- FixedTextVariant — 默认的文本变体偏好,选择可用的最大变体。
- SizeDependentTextVariant — 这种依赖大小的变体偏好允许文本在选择要显示的变体时把可用空间考虑在内。
控制文本样式
- bold(_:) — 为该视图中的文本应用粗体字重。
- italic(_:) — 为该视图中的文本应用斜体。
- underline(_:pattern:color:) — 为该视图中的文本应用下划线。
- strikethrough(_:pattern:color:) — 为该视图中的文本应用删除线。
- textCase(_:) — 设置该视图所含文本在显示时的大小写转换方式。
- textCase — 一种样式覆盖,在显示时使用环境的语言区域转换
Text的大小写。 - monospaced(_:) — 在可能的情况下,把所有子视图的字体改为当前字体的等宽变体。
- monospacedDigit() — 在可能的情况下,把所有子视图的字体改为使用等宽数字,同时让其他字符保持比例间距。
- AttributedTextFormattingDefinition — 用于定义视图中文本可以如何设置样式的协议。
- AttributedTextValueConstraint — 用于定义某个属性取值约束的协议。
- AttributedTextFormatting — 与属性文本格式化定义相关的类型的命名空间。
管理文本布局
- truncationMode(_:) — 设置太长、无法放入可用空间的文本行的截断模式。
- truncationMode — 一个值,指示布局如何截断最后一行文本以放入可用空间。
- allowsTightening(_:) — 设置该视图中的文本在需要把文本放入一行时是否可以压缩字符之间的间距。
- allowsTightening — 一个布尔值,指示是否应收缩字符间距以把文本放入可用空间。
- minimumScaleFactor(_:) — 设置该视图中文本为放入可用空间而缩小到的下限。
- minimumScaleFactor — 为把文本放入可用空间而缩小字号时允许的最小比例。
- baselineOffset(_:) — 设置该视图中文本相对于其基线的垂直偏移量。
- kerning(_:) — 设置该视图中文本字符之间的间距(即字距)。
- tracking(_:) — 设置该视图中文本的字距调整。
- flipsForRightToLeftLayoutDirection(_:) — 设置当布局方向为从右到左时,该视图是否水平镜像其内容。
- TextAlignment — 文本沿水平轴的对齐位置。
渲染文本
- 用 SwiftUI 创建视觉效果 — 使用着色器和文本渲染器添加滚动效果、丰富的颜色处理、自定义过渡以及高级效果。
- TextAttribute — 一种可以附加到文本视图上、并可被文本渲染器查询的值。
- textRenderer(_:) — 返回一个新视图,使其中的任何文本视图都使用
renderer来绘制自身。 - TextRenderer — 一种可以替换文本视图默认渲染行为的值。
- TextProxy — 供自定义文本渲染器使用的文本视图代理。
限制多行文本的行数
- lineLimit(_:) — 把文本在该视图中可以占用的行数设置为一个闭区间。
- lineLimit(_:reservesSpace:) — 设置文本在该视图中可以占用的行数上限。
- lineLimit — 文本在视图中可以占用的最大行数。
设置多行文本格式
- lineSpacing(_:) — 设置该视图中文本行之间的间距。
- lineSpacing — 一行文本的底部与下一行文本的顶部之间以点为单位表示的距离。
- multilineTextAlignment(_:) — 设置包含多行文本的文本视图的对齐方式。
- multilineTextAlignment — 一个环境值,指示当内容发生换行或包含换行符时文本视图如何对齐其各行。
格式化日期与时间
- SystemFormatStyle — 一组格式样式,用于在文本视图中显示实时更新的时间信息。
- TimeDataSource — 与时间相关的数据来源。
管理文本输入
- autocorrectionDisabled(_:) — 设置是否对该视图停用自动更正。
- autocorrectionDisabled — 一个布尔值,决定视图层级是否启用了自动更正。
- keyboardType(_:) — 设置该视图的键盘类型。
- scrollDismissesKeyboard(_:) — 配置可滚动内容与软件键盘交互的行为。
- textContentType(_:) — 设置该视图的文本内容类型,当用户在 macOS 上输入文本时,系统用它来提供建议。
- textInputAutocapitalization(_:) — 设置键盘上的 Shift 键自动启用的频率。
- TextInputAutocapitalization — 文本输入期间应用的大写自动转换行为的种类。
- textInputBorderShape(_:) — 设置视图层级中文本输入控件的边框形状。
- TextInputBorderShape — 用于绘制文本输入控件边框的形状。
- textInputCompletion(_:) — 当该视图用作文本输入建议时,把一个完整成形的字符串与其值关联起来。
- textInputSuggestions(_:) — 配置该视图的文本输入建议。
- textInputSuggestions(_:content:) — 配置该视图的文本输入建议。
- textInputSuggestions(_:id:content:) — 配置该视图的文本输入建议。
- textContentType(_:) — 设置该视图的文本内容类型,当用户在 watchOS 设备上输入文本时,系统用它来提供建议。
- textContentType(_:) — 设置该视图的文本内容类型,当用户在 macOS 上输入文本时,系统用它来提供建议。
- textContentType(_:) — 设置该视图的文本内容类型,当用户在 iOS 或 tvOS 设备上输入文本时,系统用它来提供建议。
- textInputFormattingControlVisibility(_:for:) — 指定人们可以使用哪些系统文本格式化控件来设置文本格式。
- TextInputFormattingControlPlacement — 一种结构体,定义每个平台上可用的系统文本格式化控件。
听写文本
- searchDictationBehavior(_:) — 配置由 searchable 修饰符所配置的任何搜索框的听写行为。
- TextInputDictationActivation
- TextInputDictationBehavior
配置写作工具行为
- writingToolsBehavior(_:) — 指定环境中文本与文本输入的写作工具行为。
- WritingToolsBehavior — 文本与文本输入的写作工具编辑体验。
- writingToolsAffordanceVisibility(_:) — 指定系统是否应为受该环境影响的文本输入视图显示写作工具提示。
指定文本等价项
- typeSelectEquivalent(_:) — 在集合(例如列表或表格)中设置显式的键入选择等价文本。
本地化文本
- 为本地化准备视图 — 指定提示信息并添加字符串,从而本地化你的 SwiftUI 视图。
- LocalizedStringKey — 用于在 strings 文件或 strings 字典文件中查找条目的键。
- locale — 视图应使用的当前语言区域。
- typesettingLanguage(_:isEnabled:) — 指定排版所用的语言。
- TypesettingLanguage — 定义文本的排版语言如何确定。
已弃用的类型
- ContentSizeCategory — 你可以为内容指定的各种尺寸。