一、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/zh-tw/n/199945.html
微信掃一掃
支付寶掃一掃