iOS控件 -UITextField/UITextView-文本输入框/多行文本控件

此中所述两种UI控件,皆为文本输入控件,即可接收用户输入的UI控件。


>>>UITextField是作为文字输入控件,分别可以作为常用的用户名,手机号和密码的输入框,下面是UITextField的一些属性。


///1. UITextField输入框中显示提示信息
  UITextField *textField = [[UITextField alloc]init];
  textField.placeholder=@"提示信息"

///2. 修改placeholder中的字体颜色及字体大小:
[inputNumber setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];
[inputNumber setValue:[UIFont boldSystemFontOfSize:21.0] forKeyPath:@"_placeholderLabel.font"];

///3. UITextField输入框输入时需要使用安全文本输入或者输入密码:
  textField.secureTextEntry = YES

///4. UITextField显示在框中最后显示的“x”清除按钮及类型:
  textField.clearButtonMode = UITextFieldViewModeWhileEditing/...

///5. UITextField调用虚拟键盘时return显示
  textField.returnKeyType = UIReturnKeyDone/UIReturnKeySearch....  //当选择UIReturnKeyDone时可以增加监听器作为放弃第一响应者

///6.   根据不同的输入框更改出现的虚拟键盘:
  inputNumber.keyboardType = UIKeyboardTypeNumberPad/UIKeyboardType...;

///7.   在使用纯代码创建UITextField时,需要设置边框borderStyle:,以及borderWidth和borderColor。

>>>UITextView是多行文本控件

有些属性类似等同于UITextField
    UITextView各种方法属性使用:
    textView.layer.borderColor = [UIColor grayColor].CGColor;
    textView.layer.borderWidth =1.0;
    textView.layer.cornerRadius =5.0;

>>> 在使用输入框控件时可设置为实时获取输入框内容
使用UITextFieldDelegate代理方法
// 明文切换密文后避免被清空  此方法可获取输入框内容
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
 {
    // 获取输入框内容
    NSString *toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    // 打印输入框的内容
    NSLog(@"%@",toBeString);   
    if(textField == self.textPassword && textField.isSecureTextEntry) {
        textField.text = toBeString;
        return NO;
    }
    return YES;
}
>>>输入框中,明文和密文之间切换
//自定义方法
// UItextField输入框密文、明文之间的切换
- (void)showAndHidePassword:(UIButton *)sender {
     // 避免明文/密文切换后光标位置偏移,ios10 以后自动修复光标问题
    //self.textField.enabled = NO;
    self.textPassword.secureTextEntry = sender.selected;
    sender.selected = !sender.selected;
   // self.textField.enabled = YES;
    //[self.textField becomeFirstResponder];
}

>>>设置点击虚拟键盘return 后,可关闭虚拟键盘

关闭虚拟键盘,还可以使用其它方法去调用textField.hidden = YES; 隐藏键盘,或者取消键盘的第一响应也可。
以上关闭虚拟键盘的方法,大多在调用虚拟键盘输入完毕后,需要进行下一步操作,关闭键盘时使用。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES; 
}
上面的关闭虚拟键盘,引出了一个新的问题,就是当虚拟键盘出现,是否有过遮挡某些控件的时候?那么问题就来了。一般处理逻辑有两种:1. 当键盘出现时,整个视图全部上移足够的距离,以便展示所有需要显示的控件。2. 使用滑动控件,UIScrollView控件,可在设置了控件的内容展示范围后,自由滑动展示的范围,所见范围不受所有控件遮挡和约束。- - - >后面我也会总结出,当键盘遮挡输入框时,或者遮挡控件时的几种处理方法。

以上为UITextField/UITextView基本的使用,不以偏概全,只授之以渔,如果您有UITextField/UITextView控件的更好使用欢迎留言交流!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,281评论 4 61
  • 记录一个菜鸟的iOS学习之旅,如能帮助正在学习的你,亦枫不胜荣幸;如路过的大神如指教几句,亦枫感激涕淋! 本文摘要...
    亦枫阅读 7,032评论 1 25
  • “一个人同时走在两条路上,是可能的,走在这路上的你,用怀疑的眼光,打量走在另一条路上的你。” 这几天开学后,系里面...
    哩哩李阅读 468评论 1 1
  • 看完《蜗居》这本书,小有心得体会,所幸所获不仅局限于婚恋伦理之间。 书中的海藻到底更爱小贝还是宋思明,我不敢妄加推...
    陈皮茶阅读 263评论 0 2
  • You only live once. Make it count.
    希望认识你阅读 318评论 0 0