标签:show ica 没有 position shu edit self edr sele
text field
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewEditChanged:) name:UITextFieldTextDidChangeNotification object:nil];
/**
* 当 text field 文本内容改变时 会调用此方法
*
* @param notification
*/
-(void)textViewEditChanged:(NSNotification *)notification{
// 拿到文本改变的 text field
UITextField *textField = (UITextField *)notification.object;
// 需要限制的长度
NSUInteger maxLength = 10;
if (maxLength == 0) return;
// text field 的内容
NSString *contentText = textField.text;
// 获取高亮内容的范围
UITextRange *selectedRange = [textField markedTextRange];
// 这行代码 可以认为是 获取高亮内容的长度
NSInteger markedTextLength = [textField offsetFromPosition:selectedRange.start toPosition:selectedRange.end];
// 没有高亮内容时,对已输入的文字进行操作
if (markedTextLength == 0) {
// 如果 text field 的内容长度大于我们限制的内容长度
if (contentText.length > maxLength) {
// 截取从前面开始maxLength长度的字符串
// textField.text = [contentText substringToIndex:maxLength];
// 此方法用于在字符串的一个range范围内,返回此range范围内完整的字符串的range
// [MBProgressHUD showError:@"只能输入10字" addView:nil];
NSRange rangeRange = [contentText rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxLength)];
textField.text = [contentText substringWithRange:rangeRange];
}
}
}
textView
在代理方法中
- (void)textViewDidChange:(UITextView *)textView{
if (textView.text.length==0) {
placeLbl.hidden = NO;
}else{
placeLbl.hidden = YES;
NSUInteger maxLength = 20;
if (maxLength == 0) return;
// textview 的内容
NSString *contentText = textView.text;
// 获取高亮内容的范围
UITextRange *selectedRange = [textView markedTextRange];
// 这行代码 可以认为是 获取高亮内容的长度
NSInteger markedTextLength = [textView offsetFromPosition:selectedRange.start toPosition:selectedRange.end];
// 没有高亮内容时,对已输入的文字进行操作
if (markedTextLength == 0) {
// 如果 textview 的内容长度大于我们限制的内容长度
if (contentText.length > maxLength) {
// 截取从前面开始maxLength长度的字符串
// textField.text = [contentText substringToIndex:maxLength];
// 此方法用于在字符串的一个range范围内,返回此range范围内完整的字符串的range
// [MBProgressHUD showError:@"内容只能输入20字" addView:nil];
NSRange rangeRange = [contentText rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxLength)];
_textView.text = [contentText substringWithRange:rangeRange];
}
}
}
}
标签:show ica 没有 position shu edit self edr sele
原文地址:https://www.cnblogs.com/xiaodeng90/p/9584943.html