1、UITextField限制輸入字?jǐn)?shù)的方法
#define MaxCount 100
// 監(jiān)聽textField的輸入
[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChange:(UITextField *)textField {
NSString *toBeString = textField.text;
// 獲取高亮部分
UITextRange *selectedRange = [textField markedTextRange];
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
// 沒(méi)有高亮選擇的字,則對(duì)已輸入的文字進(jìn)行字?jǐn)?shù)統(tǒng)計(jì)和限制
if (!position) {
if (toBeString.length > MaxCount) {
NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MaxCount];
if (rangeIndex.length == 1) {
textField.text = [toBeString substringToIndex:MaxCount];
} else {
NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MaxCount)];
textField.text = [toBeString substringWithRange:rangeRange];
}
}
}
}
2、UITextView限制輸入字?jǐn)?shù)的方法
#define MaxCount 100
self.textView.delegate = self;
/// 用此代理方法限制字?jǐn)?shù),因?yàn)樵趇OS9中選擇聯(lián)想詞不會(huì)走(textView:shouldChangeTextInRange:replacementText:)這個(gè)方法
- (void)textViewDidChange:(UITextView *)textView {
// textView.markedTextRange == nil 說(shuō)明當(dāng)前不是正在打字的高亮狀態(tài)
if (textView.markedTextRange == nil) {
if (textView.text.length > MaxCount) {
textView.text = [textView.text substringToIndex:MaxCount];
}
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。