Text Programming Guide for iOS - 01 - Introduction

162 阅读4分钟

Text Programming Guide for iOS 文档第一章About Text Handling in iOS

原文链接

以下文本中的超链接多直接到达苹果官方文档。

关于 iOS 中的文本处理

iOS 平台为您的应用程序提供了多种显示文本和让用户编辑文本的方法。它还允许您在应用程序的视图中显示格式化文本和网页内容。您可以利用的资源范围从框架对象(如文本视图、文本字段和网页视图)到文本布局引擎,您可以直接使用它们来绘制、布局和管理文本。

textpg_intro_2x.png

使用UIKit框架中的类,您可以管理编辑菜单(包括向其中添加自定义项),实现自定义输入视图,以及在应用程序内和应用程序之间复制、剪切和粘贴数据。

注:本文档以前的标题为《iOS版文本、网络和编辑编程指南》。

At a Glance

iOS中的应用程序有许多强大的技术来处理文本,包括编辑文本和呈现高质量的排版格式文本。

UIKit框架为你的应用程序提供文本和Web对象

你可以通过使用UITextView, UITextField和UILabel的实例来添加现成的文本视图,文本字段和标签到你的应用程序的用户界面。您可以通过编程方式或使用Xcode中的Interface Builder编辑器添加和配置它们。你也可以把你的应用程序视图变成一个能够理解和显示HTML、CSS和JavaScript内容的微型web浏览器。

相关章节:Displaying Text Content in iOSTypographical ConceptsManaging Text Fields and Text Views

当用户编辑文本时,你的应用程序必须管理键盘

当用户点击文本视图、文本字段或web视图中的表单字段时,iOS会将弹出键盘。一个应用程序可以控制显示哪个键盘;例如,对于数字,应用程序应该选择数字键盘。如果输入或编辑的文本被键盘遮挡,应用程序应该调整显示文本的视图,使文本显示在键盘上方。Text view, Text field, or Web view的Delegate负责验证编辑过的文本,并在用户关闭键盘时访问和存储编辑过的文本。

相关章节:Managing the Keyboard

你的应用程序可以直接绘制和管理文本

UIKit中的文本视图底层是一个强大的布局引擎,叫Text Kit。如果您需要自定义布局过程或需要干预该行为,则可以使用文本工具包。Text Kit是一组提供高质量排版服务的类和协议,它使应用程序能够存储、布局和显示具有良好排版的所有特征的文本,例如字距、连字符、断行和对齐。

对于大多数应用程序,你可以使用高级文本显示类和Text Kit来处理所有的文本。对于需要自定义解决方案的少量文本和特殊需求,您可以使用替代的底层技术,例如来自Core Text,Core Graphics和Core Animation框架的编程接口以及UIKit本身的其他API。

为了与iOS的文本输入系统直接通信,需要实现UITextInput协议以及相关的协议和类。你的应用还可以利用拼写检查和正则表达式技术。

相关章节:Using Text Kit to Draw and Manage TextLower Level Text-Handling Technologies

你的应用程序有一系列输入和编辑数据的选项

UIKit框架包括编程接口,用于编辑视图中的数据和将数据输入到应用程序中。自定义input views可以取代系统键盘,以允许输入特殊数据;input accessory views是系统键盘上方的自定义视图(或自定义输入视图),使用户能够以特定于应用程序的方式影响编辑的数据。使用UIPasteboard和相关类,应用程序可以复制,剪切和粘贴数据在自己的不同位置或自己和另一个应用程序之间。作为复制-剪切-粘贴操作的一部分,用户点击上下文编辑菜单上的命令;你的应用程序管理这个菜单,并可以添加自定义命令。

相关章节:Copy, Cut, and Paste OperationsDisplaying and Managing the Edit MenuCustom Views for Data Input

另请参阅

核心图形和核心动画框架有一些文本处理能力。例如,Core Animation提供了CATextLayer类。要了解有关这些功能的更多信息,请阅读Quartz 2D Programming Guide(Core Graphics)和Core Animation Programming Guide.

要了解更多关于Core Text框架的信息,它适用于开发高级文本处理框架,请阅读Core Text Programming GuideCore Text Reference Collection