此中所述两种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控件的更好使用欢迎留言交流!
网友评论