美文网首页
TextView和TextField常见用法

TextView和TextField常见用法

作者: jimmywife | 来源:发表于2018-08-14 13:49 被阅读0次
    一、UITextView
    textView可以实现多行输入的文本框,基本属性与UITextField相似,可以输入多行,可以滚动。
    1.基本设置
    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 280, 80)];//初始化  
    textView.backgroundColor=[UIColor colorWithRed:0.21 green:0.71 blue:0.51 alpha:0.5]; //背景色  
    textView.scrollEnabled = YES;    //当文字超过视图的边框时是否允许滑动,默认为“YES”  
    textView.editable = YES;        //是否允许编辑内容,默认为“YES”        
    textView.font=[UIFont fontWithName:@"Arial" size:18.0]; //设置字体名字和字体大小;  
    textView.returnKeyType = UIReturnKeyDefault;//return键的类型  
    textView.keyboardType = UIKeyboardTypeDefault;//键盘类型  
    textView.textAlignment = NSTextAlignmentLeft; //文本显示的位置默认为居左  
    textView.dataDetectorTypes = UIDataDetectorTypeAll; //显示数据类型的连接模式(如电话号码、网址、地址等)  
    textView.textColor = [UIColor blackColor];  
    textView.delegate = self;    //设置代理方法的实现类  
    textView.text = @"UITextView";//设置显示的文本内容  
    [textView.layer setCornerRadius:10]; //设置圆角  
    textView.tag = 1001; //设置tag值  
    
    2.代理方法
    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
    可以控制输入文字的数量的代理方法,较为常用
    //是否可以开始编辑  
    - (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
    //是否可以结束编辑  
    - (BOOL)textViewShouldEndEditing:(UITextView *)textView;
    //已经开始编辑  
    - (void)textViewDidBeginEditing:(UITextView *)textView;
    //已经结束编辑  
    - (void)textViewDidEndEditing:(UITextView *)textView;
    //内容变化  
    - (void)textViewDidChange:(UITextView *)textView;
    //光标变化  
    - (void)textViewDidChangeSelection:(UITextView *)textView;
    //当前输入的位置,当前输入的文字,是否可以继续输入  
    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
    //下面这俩不好理解,大概是验证url和文件名后缀的  
    - (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange NS_AVAILABLE_IOS(7_0);
    - (BOOL)textView:(UITextView *)textView shouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)characterRange NS_AVAILABLE_IOS(7_0);
    
    3.键盘弹出与回收
    a.键盘回收
    1.可以使用
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  
    {   //[self.view endEditing];
        UITextView *textView = (UITextView*)[self.view viewWithTag:1001];  
        [textView resignFirstResponder];  //取消成为第一响应者
    }
    2.如果是在TableView中写,可以使用TableView滑动时收回键盘的方法
    self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
    其中keyboardDismissMode,是UIScrollView的属性,
    它的值除了UIScrollViewKeyboardDismissModeNone,
    还有一种是UIScrollViewKeyboardDismissModeInteractive,表示键盘可以随着手指下滑而移出屏幕
    3.可以使用注册通知来移动键盘的位置,出现或者隐藏两个方法
    

    详情可以查看:https://www.cnblogs.com/shenlaiyaoshi/p/5977668.html

    二、UITextField
    1.基本设置
    UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];
    text.borderStyle = UITextBorderStyleRoundedRect;//设置边框样式,只有设置了才会显示边框样式
    text.background = [UIImage imageNamed:@"dd.png"]; //设置背景 
    text.disabledBackground = [UIImage imageNamed:@"cc.png"]; //设置背景
    text.placeholder = @"password";//设置水印
    text.clearButtonMode = UITextFieldViewModeAlways;//设置输入状态
    text.secureTextEntry = YES;//设置密文输入
    text.autocorrectionType = UITextAutocorrectionTypeNo;//是否纠错
    text.clearsOnBeginEditing = YES; //再次编辑就清空
    text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;//内容垂直对齐
    textFied.adjustsFontSizeToFitWidth = YES;//设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
    text.autocapitalizationType = UITextAutocapitalizationTypeNone; //首字母是否大写
    text.returnKeyType =UIReturnKeyDone;//return 键变成什么样子
    textView.keyboardAppearance=UIKeyboardAppearanceDefault;//键盘外观
    text.rightView=image;
    text.rightViewMode = UITextFieldViewModeAlways;//最右侧加图片,左侧类似
    
    2.代理方法

    详细的可以参考:https://blog.csdn.net/souprock/article/details/70598729

    3.键盘的回收
    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        [text resignFirstResponder];    //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收
        return YES;
    }
    
    4.键盘类型
    typedef enum {
    UIKeyboardTypeDefault,       默认键盘,支持所有字符         
    UIKeyboardTypeASCIICapable,  支持ASCII的默认键盘
    UIKeyboardTypeNumbersAndPunctuation,  标准电话键盘,支持+*#字符
    UIKeyboardTypeURL,            URL键盘,支持.com按钮 只支持URL字符
    UIKeyboardTypeNumberPad,              数字键盘
    UIKeyboardTypePhonePad,     电话键盘
    UIKeyboardTypeNamePhonePad,   电话键盘,也支持输入人名
    UIKeyboardTypeEmailAddress,   用于输入电子 邮件地址的键盘     
    UIKeyboardTypeDecimalPad,     数字键盘 有数字和小数点
    UIKeyboardTypeTwitter,        优化的键盘,方便输入@、#字符
    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, 
    } UIKeyboardType;
    

    相关文章

      网友评论

          本文标题:TextView和TextField常见用法

          本文链接:https://www.haomeiwen.com/subject/nwmmbftx.html