一、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-hant/n/199945.html