为UITextView添加通知..来检测UITextView内容的改变
self.mTextView =[[UITextView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH - 100, 28)];
self.mTextView.backgroundColor =[UIColor whiteColor];
self.mTextView.delegate = self;
self.mTextView.text = @"我来说几句....";
self.mTextView.backgroundColor =[UIColor whiteColor];
self.mTextView.delegate = self;
self.mTextView.text = @"我来说几句....";
[self.mSecondaryBackView addSubview:self.mTextView];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidChanged:) name:UITextViewTextDidChangeNotification object:nil];
- (void)textDidChanged:(NSNotification *)notif //监听文字改变 换行时要更改输入框的位置
{
CGSize contentSize = self.mTextView.contentSize;
UILabel *holdPlace = (UILabel *)[self.mTextView viewWithTag:1500];
if (holdPlace) {
holdPlace.text = @"";
}
if (contentSize.height > 140){
return;
}
CGFloat minus = 3;
CGRect selfFrame = self.mBackView.frame;
CGFloat selfHeight = self.mTextView.superview.frame.origin.y * 2 + contentSize.height - minus + 2 * 2;
CGFloat selfOriginY = selfFrame.origin.y - (selfHeight - selfFrame.size.height);
selfFrame.origin.y = selfOriginY;
selfFrame.size.height = selfHeight;
self.mBackView.frame = selfFrame;
self.mSecondaryBackView.frame =CGRectMake(10, 10, 230, selfHeight-20);
NSLog(@"文字改变");
{
CGSize contentSize = self.mTextView.contentSize;
UILabel *holdPlace = (UILabel *)[self.mTextView viewWithTag:1500];
if (holdPlace) {
holdPlace.text = @"";
}
if (contentSize.height > 140){
return;
}
CGFloat minus = 3;
CGRect selfFrame = self.mBackView.frame;
CGFloat selfHeight = self.mTextView.superview.frame.origin.y * 2 + contentSize.height - minus + 2 * 2;
CGFloat selfOriginY = selfFrame.origin.y - (selfHeight - selfFrame.size.height);
selfFrame.origin.y = selfOriginY;
selfFrame.size.height = selfHeight;
self.mBackView.frame = selfFrame;
self.mSecondaryBackView.frame =CGRectMake(10, 10, 230, selfHeight-20);
NSLog(@"文字改变");
}
posted on 2015-09-30 17:23 taiyang2014 阅读(638) 评论(0) 编辑 收藏 举报