字符限制和字節(jié)限制不一樣,所以我們千萬不能弄錯了,通常我們用的是字符限制。
------以漢字為例------
字符限制:輸入框只檢測輸入確定的文字
- (void)textFieldDidChange:(UITextField *)textField
{
NSString *toBeString = textField.text;
UITextRange *selectedRange = [textField markedTextRange];
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
// 沒有高亮選擇的字,則對已輸入的文字進(jìn)行字?jǐn)?shù)統(tǒng)計和限制,防止中文被截斷
if (!position){
if (toBeString.length > _maxLength){
//中文和emoj表情存在問題后室,需要對此進(jìn)行處理
NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, _maxLength)];
textField.text = [toBeString substringWithRange:rangeRange];
}
}
}
字節(jié)限制:輸入框中也會檢測到你輸入的拼音
- (void)textFieldDidChange:(UITextField *)textField
{
NSString *toBeString = textField.text;
//---字節(jié)處理
NSInteger bytesCount = strlen([textField.text UTF8String]);
if (bytesCount > _maxBytesLength) {
NSString *content = [textField.text subStrWithUtf8Len:(int)_maxBytesLength];
textField.text = content;
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者