来源:About Text Handling in iOS 官方文档
iOS平台为我们提供了许多在app中展示文本和让用户编辑文本的方式。同时,它也允许你在app视图中展示格式化的文本和网页内容。你可以使用已有框架中的对象,比如text views,text fields ,web views等文本布局框架直接绘制,布局或者管理文本。
通过UIKit框架中的类,你可以管理编辑菜单(包括增加自定义项目item),实现自定义输入键盘以及在app内部或者app与app之间复制、剪切、粘贴数据。
注意: 这份文档之前的标题是:“Text, Web, and Editing Programming Guide for iOS”.
At a Glance 总览
iOS中的应用程序拥有非常牛逼的技术帮助你操作文本,包括编辑文本、渲染高质量的排版格式文本
UIKit框架为你的app提供了关于文本及网页的对象
1、 可以通过使用UITextView,UITextField,UILabel的实例为你的app用户界面添加预置的text views,text fields,labels。
2、 可以通过代码或者使用Xcode自带的Interface Builder添加和配置它们。
3、 可以将视图变成一个可以解析并且展示HTML,CSS和javaScript内容的微小网页浏览器,这一步可以通过UIWebView对象实现
相关内容:“Displaying Text Content in iOS” "Typographical Concepts" "Managing Text Fields and Text Views" "Displaying Web Content"
当用户编辑文本的时候,你的app必须做键盘处理
1、当用户点击了一个text field,text view或者网页中的form field,iOS将会通过动画弹出一个键盘。
2、app应该能够控制弹出键盘的类型,比如,对于一个只能输入数字的文本框,app应该选择数字键盘。
3、如果获取焦点的文本被键盘遮住了,app应该调整展示文本的视图以保证文本不被键盘挡住。当用户关闭键盘时,text view,text field或者网页视图的代理负责确认编辑后的文本以及访问、保存编辑文本内容。
相关内容:“Managing the Keyboard”
你的app可以直接绘制和管理文本
1、UIKit中 text views 是建立在一个强大的排版引擎 Text Kit 之上的。如果你想要自定义text的排版方法或者想要改变原来的布局方式,你可以使用 Text Kit。 Text Kit是一系列类和协议的集合,它提供了高质量的排版服务,允许app通过诸如调整字距、连字、换行等细致的排版功能来保存,编排,展示文本。
2、对于大多数app来说,你可以使用高水平的文本显示类和Text Kit来操作它们的文本。对于少数的文本和有特殊需求自定义的情形,你可以使用可混编的、底层的技术,比如Core Text,Core Animation框架等UIKit中其它API的程序接口程序。
3、实现UITextInput ptotocol和 和相关的协议和类,可以直接和iOS的文本输入系统进行交互。你的app也可以使用拼写检查和正则表达式等技术。
相关内容:“Using Text Kit to Draw and Manage Text”, "Lower Level Text-handling Technologies"
你的app有关于输入和编辑数据的一系列选项
UIKit框架包含了用于编辑视图中数据和输入数据的程序接口。自定义输入视图可以替换系统键盘从而达到输入一些特殊数据的目的(比如表情~);输入辅助视图是系统键盘(也可能是自定义的输入视图)上面允许用户通过app指定的方式影响编辑数据结果的视图。使用UIPastboard和相关的类,app可以在自身内部或者与其它app之间copy、cut、paste数据。用户点击与上下文有关的编辑菜单命令,可以实现copy-cut-paste等操作;你的app可以管理这个菜单,也可以添加自定义命令。
相关内容:“Copy, Cut, and Paste Operations,” "Displaying and Managing the Edit Menu," "Custom Views for Data Input"
了解更多,请参照 Core Text Programming Guide 和 Core Text Reference Collection.
备注:以上内容为本人翻译自官方文档,难免有不确切之处,仅供参考。来自@bbqe