一、UITextfield概述
iOS中的UITextField可以让用户在一个小的矩形框内输入文本。UITextfield可以用于登录页面、搜索框和一些需要用户输入文本的页面。
下面是一个基础的UITextField的示例代码:
let textField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 30)) textField.backgroundColor = .white textField.placeholder = "请输入内容" textField.borderStyle = .roundedRect view.addSubview(textField)
二、UItextField的属性
1. placeholder
placeholder属性用于在用户没有输入时显示的默认文本。它有助于指导用户输入框中应该填写什么内容。
let textField = UITextField() textField.placeholder = "请输入内容"
2. text
text属性存储UITextfield内部的文本信息,它是用户输入的结果。通过它可以设置UITextField的初始文本值。
let textField = UITextField() textField.text = "输入的文本信息"
3. textColor
textColor属性设置UITextField中文本的颜色。
let textField = UITextField() textField.textColor = .black
4. font
font属性用于指定UITextField中文本的字体大小和样式。
let textField = UITextField() textField.font = UIFont.systemFont(ofSize: 16)
5. keyboardType
keyboardType属性指定了软键盘的类型,如数字、邮件、搜索等。
let textField = UITextField() textField.keyboardType = .default
6. delegate
UITextFieldDelegate是UITextField的一个协议,它定义了一些方法和回调,可以帮助我们实现一些非常有用的功能。例如:限制输入文本的最大长度、筛选不想要的字符、隐藏密码等。
class ViewController: UIViewController, UITextFieldDelegate {
let textField = UITextField()
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//文本最大长度不超过20个字符
let maxLength = 20
let currentString: NSString = textField.text! as NSString
let newString: NSString = currentString.replacingCharacters(in: range, with: string) as NSString
return newString.length <= maxLength
}
}
三、UItextField的交互与优化
1. 按下return键退出键盘
在UITextFieldDelegate协议中,可以使用textFieldShouldReturn方法实现“按下return键退出键盘”的功能。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
2. 点击background关闭键盘
可以使用UIGestureRecognizer或重载UIView的touchesEnded方法实现自动关闭键盘。
class CustomView: UIView {
override func touchesEnded(_ touches: Set, with event: UIEvent?) {
self.endEditing(true)
}
}
let customView = CustomView()
let textField = UITextField()
customView.addSubview(textField)
3. UITextfield自动补全
iOS中有一个功能很实用,就是UITextField的自动补全。UITextField的自动补全可以帮助用户快速地输入文本,提高了用户的体验。
class ViewController: UIViewController, UITextFieldDelegate {
let textField = UITextField()
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
//设置自动补全类型为邮件
textField.autocorrectionType = .no
//设置自动大写首字母
textField.autocapitalizationType = .words
}
//当用户输入第二个字符时显示自动补全建议
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField.text!.count == 1 || string == "" {
textField.autocompleteType = .none
} else {
textField.autocompleteType = .email
}
return true
}
}
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/199945.html
微信扫一扫
支付宝扫一扫