一、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