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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!