iOS控件 -UITextField/UITextView-文本

作者: 罂粟之城 | 来源:发表于2017-11-15 00:08 被阅读137次

    此中所述两种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控件 -UITextField/UITextView-文本

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