淘先锋技术网

首页 1 2 3 4 5 6 7

 UITextField继承UIControl

     1.文字永远是一行,不能显示多行文字

     2.有placehoder属性设置占位文字

     3.继承自UIControl

     4.监听行为

     1> 设置代理

     2> addTarget:action:forControlEvents:

     3> 通知:UITextFieldTextDidChangeNotification

 

 UITextView继承UIScrollView

     1.能显示任意行文字

     2.不能设置占位文字(可以通过创建个UILabel子控件来加载在UITextView上实现)

     3.继承自UIScollView

     4.监听行为

     1> 设置代理

     2> 通知:UITextViewTextDidChangeNotification

 

相同点:两者都可以监听系统键盘的变化,可以据此自定义键盘:注意:两者在点击编辑内容时,系统 自动加载系统键盘,要想自定义键盘,必须先取消第一响应者[UITextView / UITextField resignFirstResponder],然后设置inputView;如果想实现自定义键盘和系统的键盘的自由切换,需要在设置inputView时,这样设置:textView.inputView = textView.inputView == nil ? emoticonKeyboardView : nil,然后恢复第一响应者[UITextView / UITextField becomeFirstResponder],即可实现键盘的自由切换。

键盘事件

使用场景:

  • 计算键盘的高度,调整UI布局
  • 根据键盘显示隐藏执行UI的动画


键盘监听代码如下:(self.toolBar是自定义的键盘,继承至UIToolBar)

- (void)regiserNotification{

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil];

}

 

- (void)keyboardWillChange:(NSNotification *)notification{

    NSLog(@"%@",notification);

    CGRect rect = [[[notification userInfo]objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

    NSLog(@"%f---",rect.origin.y);

    CGFloat offsetY = - kScreenHeight + rect.origin.y;

    NSLog(@"---offsetY %f",offsetY);

    [self.toolBar mas_updateConstraints:^(MASConstraintMaker *make) {

        make.bottom.mas_equalTo(offsetY);

    }];

    [self.view layoutIfNeeded];

}

 

- (void)dealloc{

    [[NSNotificationCenter defaultCenter] removeObserver:self];

}

UITextField和UITextView

UITextField基本功能效果如下:使用代理下面的例子通过代理实现了一个统计字符数的功能,并且实时更新。效果如下:UITextView基本功能效果如下:当点击文字时键盘会自动弹出,占了大概一半的空间。如果用户要输入大....

UITextField 和 UITextView

UITextField 属性:1、frame坐标2、borderStyle边框样式3、placeholder提示文字4、keyboardType键盘样式(数字键盘,字母键盘等)5、keyboardAppearance键盘外观6、secureTextEntry密文输入7、clearButtonMode清除按....