1下硕,輸入內(nèi)容時(shí)光標(biāo)亂跳問(wèn)題
處理:
textView.layoutManager.allowsNonContiguousLayout = NO;
這句代碼設(shè)置了 UITextView 中的 layoutManager(NSLayoutManager) 是否非連續(xù)布局屬性潮剪,默認(rèn)是 YES丈氓,設(shè)置為 NO 后 UITextView 就不會(huì)再自己重置滑動(dòng)了嗤疯。
2闯传,判斷輸入內(nèi)容長(zhǎng)度時(shí)峰髓,中文聯(lián)想輸入法文本長(zhǎng)度判斷不準(zhǔn)確問(wèn)題
Paste_Image.png
如圖亥鬓,輸入中文文字完沪,如 幾次
時(shí),拼音 jici
已經(jīng)在 textView 中,被計(jì)算到了文本的長(zhǎng)度中覆积,而我們要獲取的長(zhǎng)度是選擇了 幾次
后的長(zhǎng)度听皿,而不是在拼音狀態(tài) jici
的長(zhǎng)度
處理:
/ *如果可以選擇文本,則可以對(duì)其進(jìn)行標(biāo)記宽档。
標(biāo)記的文本表示“暫時(shí)的插入的文本尉姨,其尚未被用戶確認(rèn)。
它需要在顯示屏上進(jìn)行獨(dú)特的視覺(jué)”處理吗冤。
如果有任何標(biāo)記的文本選擇又厉,無(wú)論是*注釋還是擴(kuò)展范圍,總是駐留*
設(shè)置標(biāo)記的文本將替換現(xiàn)有的標(biāo)記文本椎瘟,如果沒(méi)有覆致,則從當(dāng)前選擇中插入。 * /
@property (nullable, nonatomic, readonly) UITextRange *markedTextRange; // Nil if no marked text.
因此肺蔚,判斷是否有標(biāo)記文本煌妈,有則不判斷文本的長(zhǎng)度
- (void)textViewDidChange:(UITextView *)textView{
if(textView.markedTextRange) return;
if(textView.lengh > maxValue) {
NSLog(@"文本長(zhǎng)度超過(guò)maxValue");
}
}