iOS文本編程指南(四)

管理Text Field與Text View

text field與text view有兩個(gè)主要功能:展示文本并開(kāi)啟文本的輸入與編輯斧吐。一些編程任務(wù)與這些簡(jiǎn)單的目的相關(guān),包括配置文本對(duì)象仲器、訪問(wèn)當(dāng)前文本煤率、驗(yàn)證用戶輸入的內(nèi)容、以及在文本字段中顯示書(shū)簽按鈕等覆蓋視圖乏冀。

這些任務(wù)主要有UITextField或UITextView的委托對(duì)象負(fù)責(zé)蝶糯。

發(fā)送至委托對(duì)象的消息序列

大多數(shù)情況下,當(dāng)一個(gè)UITextField或者UITextView對(duì)象為第一響應(yīng)對(duì)象且發(fā)生狀態(tài)改變時(shí)辆沦,發(fā)送一個(gè)消息序列至其委托對(duì)象昼捍。當(dāng)用戶輕觸一個(gè)文本對(duì)象,它自動(dòng)變?yōu)榈谝豁憫?yīng)對(duì)象肢扯,然后系統(tǒng)會(huì)展示鍵盤(pán)并且文本對(duì)象進(jìn)入編輯狀態(tài)妒茬。用戶輕觸另一個(gè)文本對(duì)象或點(diǎn)擊按鈕結(jié)束編輯時(shí),當(dāng)前的文本對(duì)象退出第一響應(yīng)對(duì)象的狀態(tài)蔚晨。如果沒(méi)有其他文本對(duì)象被選中乍钻,系統(tǒng)會(huì)隱藏鍵盤(pán);否則铭腕,選中的文本對(duì)象成為第一響應(yīng)對(duì)象银择,該對(duì)象的鍵盤(pán)會(huì)被展示。

有一些例外累舷。在iPad上浩考,如果當(dāng)前視圖控制器處于“表單”的模態(tài),鍵盤(pán)一旦出現(xiàn)笋粟,只有點(diǎn)擊了消失鍵或者該視圖控制器消失時(shí)怀挠,鍵盤(pán)才會(huì)消失析蝴。這種行為的目的是避免當(dāng)用戶在text fields間移動(dòng)時(shí)害捕,產(chǎn)生過(guò)多的動(dòng)畫(huà)。另一個(gè)例外涉及text view闷畸。輸入控件(input view)是系統(tǒng)鍵盤(pán)的替代尝盼,當(dāng)出現(xiàn)輸入控件時(shí),UIKit可能立即切掉鍵盤(pán)佑菩,即使當(dāng)前文本對(duì)象仍未第一響應(yīng)對(duì)象盾沫,這時(shí)會(huì)出現(xiàn)一個(gè)像鍵盤(pán)一樣的輸入控件裁赠,來(lái)輸入非文本對(duì)象。

這個(gè)消息序列如下:

  1. textViewShouldBeginEditing: 委托對(duì)象來(lái)驗(yàn)證當(dāng)前文本對(duì)象是否應(yīng)該成為第一響應(yīng)對(duì)象
  2. textViewDidBeginEditing:委托可以響應(yīng)該方法赴精,更新?tīng)顟B(tài)信息佩捞。
  3. textViewDidChange: 當(dāng)文本變化時(shí)調(diào)用(譯者注:委托對(duì)象用來(lái)更新頁(yè)面)
  4. textViewShouldEndEditing: 委托對(duì)象主要實(shí)現(xiàn)該方法來(lái)驗(yàn)證輸入文本的有效性。
  5. textViewDidEndEditing: 委托對(duì)象實(shí)現(xiàn)該方法來(lái)獲取用戶輸入或者編輯的文本蕾哟。

對(duì)象仍可以通過(guò)觀察通知來(lái)獲知文本對(duì)象的第一響應(yīng)者狀態(tài)的變化一忱。(然而不能干預(yù)這些狀態(tài)的轉(zhuǎn)變)。通知名包括:UITextFieldTextDidBeginEditingNotification, UITextViewTextDidEndEditingNotification, UITextViewTextDidChangeNotification.

配置Text Field與Text View

如其他視圖一樣谭确,需要在text field或text view出現(xiàn)之前對(duì)其進(jìn)行配置帘营,可通過(guò)代碼,也可通過(guò)IB逐哈。兩種方式都需要設(shè)置他們的屬性芬迄。

有些屬性是共有的,有些是獨(dú)有的昂秃,包括如下幾個(gè)屬性:

  • 文本屬性——文本顏色禀梳、對(duì)齊、字體族肠骆、字體出皇、字號(hào)
  • 鍵盤(pán)——鍵盤(pán)類型,返回鍵名字哗戈,安全文本輸入郊艘,自動(dòng)啟用返回鍵,所有這些在UITextInputTraits協(xié)議中有描述唯咬。更多內(nèi)容纱注,參照Configuring the Keyboard for Text Objects
  • text field 特有的——邊框,背景圖胆胰,失效圖狞贱,清除按鈕,默認(rèn)文字蜀涨。作為UIControl對(duì)象瞎嬉,還有高亮、選中厚柳、啟用以及其他屬性
  • text view 特有的——可編輯狀態(tài)氧枣,數(shù)據(jù)檢測(cè)器。由于繼承自UIScrollView别垮,其擁有父類屬性便监。

部分內(nèi)容略,請(qǐng)參照原文


跟蹤text view的選中狀態(tài)

textViewDidchangeSelection: 方法讓你能夠跟蹤用戶選擇文本的變化。你可以實(shí)現(xiàn)這個(gè)方法來(lái)獲取選中的子串烧董。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末毁靶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子逊移,更是在濱河造成了極大的恐慌预吆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胳泉,死亡現(xiàn)場(chǎng)離奇詭異啡浊,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)胶背,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)巷嚣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人钳吟,你說(shuō)我怎么就攤上這事廷粒。” “怎么了红且?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵坝茎,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我暇番,道長(zhǎng)嗤放,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任壁酬,我火速辦了婚禮次酌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舆乔。我一直安慰自己岳服,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布希俩。 她就那樣靜靜地躺著吊宋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颜武。 梳的紋絲不亂的頭發(fā)上璃搜,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音鳞上,去河邊找鬼这吻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛因块,可吹牛的內(nèi)容都是我干的橘原。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼涡上,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼趾断!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起吩愧,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芋酌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后雁佳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體脐帝,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年糖权,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堵腹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡星澳,死狀恐怖疚顷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情禁偎,我是刑警寧澤腿堤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站如暖,受9級(jí)特大地震影響笆檀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盒至,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一酗洒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧枷遂,春花似錦寝蹈、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至黔州,卻和暖如春耍鬓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背流妻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工牲蜀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绅这。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓涣达,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子度苔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容