UITextView 限制字符長度
頁面啟動時添加通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewChange:) name:@"UITextViewTextDidChangeNotification" object:self.txtSuggestion];
- (BOOL)textView:(UITextView )textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString )text
{
NSString *toBeString = [textView.text stringByReplacingCharactersInRange:range withString:text];
if (toBeString.length > kMaxLength && range.length!=1){
} return YES; }textView.text = [toBeString substringToIndex:kMaxLength]; return NO;
-(void)textViewChange:(NSNotification )obj{ UITextField textField = (UITextField *)obj.object;
NSString *toBeString = textField.text;
NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage; // 鍵盤輸入模式
if ([lang isEqualToString:@"zh-Hans"]) { // 簡體中文輸入,包括簡體拼音,健體五筆,簡體手寫
UITextRange *selectedRange = [textField markedTextRange];
//獲取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
// 沒有高亮選擇的字,則對已輸入的文字進行字數統計和限制
if (!position) {
if (toBeString.length > kMaxLength) {
textField.text = [toBeString substringToIndex:kMaxLength];
}
}
// 有高亮選擇的字符串,則暫不對文字進行統計和限制
else{
}
}
// 中文輸入法以外的直接對其統計限制即可,不考慮其他語種情況
else{
if (toBeString.length > kMaxLength) {
textField.text = [toBeString substringToIndex:kMaxLength];
}
}
}
離開頁面時
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"UITextFieldTextDidChangeNotification"
object:self.txtSuggestion];</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!