1.首先需要注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onTextViewEditChanged:) name:@"UITextViewTextDidChangeNotification" object:nil]
2.实现监听方法:
// 监听字符变化,并处理
- (void)onTextViewEditChanged:(NSNotification *)obj
{
UITextView *textView = (UITextView *)obj.object
self.placeholderLab.hidden = textView.hasText
if (ReportTextViewMaxLength >0)
{
NSString *toBeString = textView.text
//获取当前高亮
UITextRange *selectedRange = [textView markedTextRange]
UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0]
// 如果没有高亮选择,则对已经输入的文字进行字数统计、限制
if (!position)
{
if (toBeString.length >ReportTextViewMaxLength)
{
[textView shake]
[MBProgressHUD show:@"举报内容最多为60字!" icon:nil view:[UIApplication sharedApplication].keyWindow hideAfterDelay:1.0]
NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:ReportTextViewMaxLength]
if (rangeIndex.length == 1)
{
textView.text = [toBeString substringToIndex:ReportTextViewMaxLength]
}
else
{
NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, ReportTextViewMaxLength)]
textView.text = [toBeString substringWithRange:rangeRange]
}
}
}
}
//这里可以实现其他需要的处理。
}
}
3.最后不要忘了在页面销毁的时候移除通知:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"UITextViewTextDidChangeNotification" object:nil]
TextView是用来显示文字的,ImageView是用来显示图片的。默认情况下,两个获得焦点时是没有背景色的。要实现获得焦点时候有背景颜色,可以添加监听,实现自己需要的背景效果 textview.setOnTouchListener(new View.OnTouchListener(){ public boolean onTouch(View view, MotionEvent motionEvent) { //自己的背景效果 return false} })如textview.setBackgroundResource(R.drawable.aaa)//aaa为自己的背景图片或xml文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)