UITextField輸入有emoji表情時的字數限定
有時候要求輸入含有emoji表情,這時候前面對中文的那種限定就不行了,因為在輸入時漢子和字母,數字都是占一個字符,截取和遍歷輸入內容按字符來一點問題也沒有,可emoji表情占兩個字符,會出現什么情況呢?假如限定輸入21個字符,輸到第20個字符時,我再輸入一個emoji表情,你截取21個字符,emoji表情就顯示不對了,那怎么辦呢,下面給出方法,還是
- (void)textFiledDidChange:(UITextField *)textField { NSString *toBeString = textField.text; //獲取高亮部分 UITextRange *selectedRange = [textField markedTextRange]; UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0]; // 沒有高亮選擇的字,則對已輸入的文字進行字數統計和限制 if (!position) { if (toBeString.length > Max_Length) { NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:Max_Length]; if (rangeIndex.length == 1) { textField.text = [toBeString substringToIndex:Max_Length]; } else { NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, Max_Length)]; textField.text = [toBeString substringWithRange:rangeRange]; } } } }
本文由用戶 jope3014 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!