iOS 平臺(tái)有多種方式讓你在app中顯示文本,以及讓用戶編輯文本。它還讓你顯示格式化的文本以及在app的視圖中的web內(nèi)容。你可以處理的資源范圍包括框架對(duì)象(例如文本視圖、文本字段、以及web視圖)和文本布局引擎(可以直接用來繪制、布局、以及其他方式管理文本)。

使用UIKit框架中的本類,你可以管理編輯菜單、實(shí)現(xiàn)自定義輸入視圖,以及在app之間復(fù)制、剪切、和粘貼數(shù)據(jù)。
注意:本文檔之前的標(biāo)題是Text, Web, and Editing Programming Guide for iOS。
概覽
在iOS中的app有很多強(qiáng)大的技術(shù)來處理文本,包括編輯文本和渲染高質(zhì)量的排版格式的文本。
UIKit框架位app提供的文本和web對(duì)象
你可以通過使用 UITextView, UITextField, 和 UILabel的實(shí)例給app的用戶界面添加預(yù)制的文本視圖、文本字段、以及標(biāo)簽。你可以用編碼或者使用Xcode中的Interface Builder編輯器來添加和設(shè)置它們。你還可以把a(bǔ)pp的視圖轉(zhuǎn)換成可以理解和顯示HTML、CSS和JavaScript內(nèi)容的小型web瀏覽器。
相關(guān)章節(jié):Displaying Text Content in iOS, Typographical Concepts, Managing Text Fields and Text Views
當(dāng)用戶編輯文本的時(shí)候,app必須管理鍵盤
當(dāng)用戶點(diǎn)擊文本字段、文本視圖、或者web視圖中的表單字段的時(shí)候,iOS會(huì)在視圖中動(dòng)態(tài)的出現(xiàn)一個(gè)鍵盤。App可以控制出現(xiàn)的鍵盤;比如,對(duì)于一個(gè)數(shù)字值的字段,app應(yīng)該選擇數(shù)字鍵盤。如果輸入的或編輯的文本被鍵盤遮擋,app應(yīng)該調(diào)整顯示文本的視圖,以便文本在鍵盤的上面。文本視圖、文本字段、或者web視圖的委托負(fù)責(zé)驗(yàn)證文本、以及在用戶關(guān)閉鍵盤的時(shí)候訪問和存儲(chǔ)編輯的文本。
相關(guān)章節(jié): Managing the Keyboard
App可以直接繪制和管理文本
在UIKit的文本視圖之下,是一個(gè)被稱為Text Kit的強(qiáng)大的布局引擎。如果你需要自定義布局過程或者需要介入該行為,你可以使用Text Kit。Text Kit是一些列類和協(xié)議,它提供高質(zhì)量的排版服務(wù),它使應(yīng)用可以存儲(chǔ)、布局、以及顯示具有精細(xì)排版所有特點(diǎn)(例如字距、連字、換行、以及對(duì)齊)的文本。
對(duì)于大多數(shù)app,你可以使用高級(jí)的文本顯示類和Text Kit來處理它們的文本。對(duì)于少數(shù)文本以及特定需求的自定義方案,你可以使用低等級(jí)的基礎(chǔ),例如來自Core Text、Core Graphics以及Core Animation框架的編程接口以及UIKit本身其他的API。
想要直接和iOS的文本輸入系統(tǒng)通信,請(qǐng)實(shí)現(xiàn)UITextInput 協(xié)議以及相關(guān)的協(xié)議和類。App還可以使用拼寫檢查和正則表達(dá)式技術(shù)。
相關(guān)章節(jié): Using Text Kit to Draw and Manage Text, Lower Level Text-Handling Technologies
對(duì)于數(shù)據(jù)的輸入和編輯,app提供的選擇范圍
UIKit框架包括用于在視圖中編輯數(shù)據(jù)以及讓數(shù)據(jù)進(jìn)入app的編程接口。自定義輸入視圖可以代替系統(tǒng)鍵盤來作為特定數(shù)據(jù)的主輸入;輸入附件視圖是一個(gè)在系統(tǒng)鍵盤(或者自定義輸入視圖)之上的自定義視圖,它使用戶能夠以特定于app的方式影響已編輯的數(shù)據(jù)。使用UIPasteboard 和相關(guān)的類,app可以在自身以及其他app的不同位置進(jìn)行拷貝、剪切、以及粘貼數(shù)據(jù)。作為復(fù)制-剪切-粘貼操作的一部分,用戶點(diǎn)擊在上下文編輯菜單上的命令;app管理這個(gè)菜單并可以添加自定義命令。
相關(guān)章節(jié): Copy, Cut, and Paste Operations, Displaying and Managing the Edit Menu, Custom Views for Data Input
還可以看
Core Graphics和Core Animation框架還有一些文本處理的功能。例如,Core Animation提供 CATextLayer類。更多關(guān)于這些功能的內(nèi)容,請(qǐng)閱讀Quartz 2D Programming Guide (Core Graphics) 和 Core Animation Programming Guide.
想要找更多的關(guān)于Core Text框架(一個(gè)適合開發(fā)高級(jí)文本處理的框架)的內(nèi)容,請(qǐng)閱讀Core Text Programming Guide 和 Core Text Reference Collection。