今天是UITextView的完結篇~
seletedRange儲存了當前選擇的範圍。如下圖的文字,print(newTextView.seletedRange)後會得到一個{75, 0}的數組。
這個property主要是為了存取狀態而存在。
也可以藉此設定一個NSRange來指定選擇的範圍,此property的值在iOS 2.2以為都是0,iOS 3以後才變成一串非0的數字。
而scrollRangeToVisible(_:)則會將你設定的NSRange捲動到可視的範圍內:
newTextView.scrollRangeToVisible(NSRange(location: 50, length: 10))
如範例我設定了NSRange從第50個字開始算10個字的長度(是你的損失,10點鐘),他就會在程式剛開始執行時被捲到可視位置(上圖左),如果沒有設定的話就不會捲動(上圖右)。
clearsOnInsertion是個布林值,決定了新插入的文字是否會清空原本text view裡的文字,預設值為false。
當這個值為true且text view處於編輯模式時,將會插入新的文本、清空原本的內容,並將clearsOnInsertion變更為false。
isSeletable決定了text view能否被選取,預設值為true。
如果isSeletable的值為false,使用者不但無法選取text view,也無法與text view內的任何超連結互動。
inputView會讓你的text view在成為first responder之後,跳出一個UIView來取代鍵盤。如果此property的值為nil則會跳出鍵盤,預設值為nil。
newTextView.inputView = pollyView
而inputAccessoryView則是會在你的鍵盤或inputView上顯示的裝飾視圖:
newTextView.inputAccessoryView = pollyView
layoutManager是個get-only的property,為text view的文字內容設定佈局。
textContainer是個get-only的property,定義了text view裡的文字顯示範圍。
而textStorage則是管理text view裡顯示的文字,也是gey-only property。
先前有提到過的,app在待機或背景程式的狀態下,過一段時間就會重新讀取。如果你沒有特地設定狀態存取,app就會從開啟app時的狀態開始讀取,hen惱人。
在iOS 6之後的版本,你可以為text view設定restorationIdentifier去存取以下的狀態:
而app在背景模式下重新讀取的時候,如果偵測到restorationIdentifier是個非nil字串,則會讀取此identifier對應儲存的狀態內容。
下一回開始是UIScrollView的篇章,鐵人賽只剩3天了,可能沒有辦法在賽期內講完。
不過即使鐵人賽結束,我還是會繼續寫下去的,到時後還請大家可以繼續支持我的文章喔~