为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.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(@"文字改变");

}

时间: 2024-11-06 14:27:42

为UITextView添加通知..来检测UITextView内容的改变的相关文章

iOS 监听UITextView内容的改变

长文本输入时比较喜欢用UITextView,因为它会自动换行,比UITextField好用些,但是当需要监听text view中的内容变化时.Apple缺没有提供像UITextField那样方便的代理方法. 其实要监测text view中内容的改变也不难,只需下面三步操作,即可实现与UITextField的代理方法相似的效果. 1.在- (void) viewDidLoad:使用通知中心,给UITextView添加观察者 1 NSNotificationCenter *nc = [NSNotif

UITextView添加Placeholder(swift)

UITextView添加Placeholder(swift) by 伍雪颖 添加UILabel并初始化 public let placeholderLabel: UILabel = UILabel() @IBInspectable public var placeholder: String = "" { didSet { placeholderLabel.text = placeholder } } @IBInspectable public var placeholderColor

教大家如何给UITextView添加placeholder扩展

如何扩展UITextView以追加placeholder功能呢? 我们的需求是:追加placeholder功能 方案讨论: 通过继承UITextView的方式 通过扩展UITextView的方式 分析:方案1使用继承方式实现起来更简单,但是使用起来就没有那么方便:方案2 使用扩展的方式,实现起来稍比前者复杂,但是外部使用起来更简单 方案定位:采用扩展的方式,以极简的风格作为参考依据. Tip:所谓极简,即对外接口最简,对内部可以很复杂 扩展头文件 #import <UIKit/UIKit.h>

php检测文件内容编码的方法

核心用到的是mb_convert_encoding函数,示例代码如下: <?php header("Content-type: text/html; charset=utf-8"); /** * 获取内容的编码 * @param string $str */ function get_encoding($str = "") { $encodings = array ( 'ASCII', 'UTF-8', 'GBK' ); foreach ( $encoding

[添加用户]解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或目录的访问权限命令,linux修改用户密码,usermod的ysuum安装包。飞

usermod的yum安装包: shadow-utils 将nobody用户添加到nogroup 组: usermod -g nogroup nobody cat /etc/passwd|grep nobody nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash 第3个字段是65534:意思就是,UID(用户的ID)是500. 第4个字段是65534:意思就是.GID(用户的组ID)的500. 使用usermod -g nogroup no

时时监听input内容的改变

心得:我们都知道inoput有一个change事件,但是是在input元素失去焦点的时候发生,不能时时的监听input内容的改变. 刚开始的时候我是想用setInterval设置计时器的原理定时监听input内容的改变,但是结果差强人意,效果一点也不好,有时候操做过快还会出现undefined的情况. 解决方法:通过阅读资料了解到input有意的input事件在大多当今主流的浏览器都能实现对input输入内容的时时监听: <input id="test"/> $("

点击添加或减少数量,总价随之改变(keyup的用法)

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>点击添加或减少数量,总价随之改变(keyup的用法)</title> <link rel="stylesheet" href="style.css"> <meta content="width=

UITextView文字添加链接和自定义选择内容后的菜单

1.OC版 self.textView.dataDetectorTypes = UIDataDetectorTypeAll; self.textView.editable = NO;  //只有设置为No,不可编辑才能显示下划线. self.textView.text = @"http://www.baidu.com   \n tel://185-1108-9430  +8602980000000  [email protected]"; // 选择内容后弹框添加按钮  不必不可编辑

【iOS开发-17】UITextView属性,点击新增内容案例,及UITextViewDelegate里光标/值变化的操作方法

(1)UITextView和UITextField的区别可以(简单)理解为,前者是一块区域可以写很多东西有换行滚动条神马的,后者只有一行文本,类似于html里面的textarea和text. (2)在本例中,我们利用一个UITextField和一个UIButton不断把UITextField里面的内容加到UITextView的最后一行.这里面用到给按钮增加 一个事件,并在事件里面把UITextField.text加到UITextView.text的后面. (3)在本例中为了用户体验,可以设置每次