可以使用文字欄位 (text field) 從用戶使用屏幕鍵盤收集文字的輸入。鍵盤可配置為許多不同類型的輸入,例如純文字、電子郵件、數字等。文字欄位使用目標-動作 (target-action) 機制和委任物件 (delegate object) 來回報在編輯過程中所做的更改。
除了其基本的文字編輯行為之外,還可以將疊加視圖添加到文字欄位以顯示其他訊息並提供其他可點擊的控制。可以為元素添加自定義疊加視圖,例如書籤按鈕或搜索圖示。文字欄位提供了一個內置的疊加視圖用來清除當前文字。自定義覆蓋視圖的使用是可選的。
將文字欄位加到界面後,可以配置它在應用中使用。設定包括執行以下一些或全部任務:
當文字欄位成為第一響應者時,系統會自動顯示鍵盤並將其輸入綁定到文字欄位。文字欄位在用戶點擊時自動成為第一響應者。還可以通過調用文字欄位的 beginFirstResponder()
方法來強制其成為第一響應者。當要求用戶輸入某些訊息時,可以強制文字欄位成為第一響應者。
可以通過調用文字欄位的 resignFirstResponder()
方法來要求系統關閉鍵盤。通常,會響應特定的相互作用而關閉鍵盤。例如,當用戶點擊鍵盤的 Return 鍵時,會關閉鍵盤。系統還可以響應於用戶操作而關閉鍵盤。具體來說,當用戶點擊不支持鍵盤輸入的新元件時,系統將關閉鍵盤。鍵盤的外觀和關閉會影響文字欄位的編輯狀態。出現鍵盤時,文字欄位進入編輯狀態,並將適當的通知發送給它的委託人。同樣,當文字欄位退出第一響應者狀態時,它將離開編輯狀態並通知其委任。
textColor
。font
。textAlignment
。background
。disabledBackground
。borderStyle
。clearButtonMode
。minimumFontSize
。autocapitalizationType
以編程方式存取此屬性的值。autocorrectionType
以編程方式存取此屬性的值。spellCheckingType
以編程方式存取此屬性的值。keyboardType
以編程方式存取此屬性的值。keyboardAppearance
以編程方式存取此屬性的值。returnKeyType
以編程方式存取此屬性的值。預設情況下,Return 鍵是禁用的,僅當用戶在文字欄位中鍵入一些文字時,返回鍵才啟用。要響應 Return 鍵中的輕擊,請在分配給文字欄位的委任中實現 textFieldShouldReturn(_:)
方法。
圖:UITextField 界面生成器屬性
在 ViewController 加入 TextField 委任:
class ViewController: UIViewController, UITextFieldDelegate {
// 省略
}
在 viewDidLoad 中加入委任設定,及 TextField 屬性設定
override func viewDidLoad() {
super.viewDidLoad()
// 設定委任
textField.delegate = self
// 程式碼設定 TextField 屬性
textField.textColor = UIColor.systemGreen
textField.font = .systemFont(ofSize: 20)
textField.placeholder = "請輸入內容"
}
// 用此函數讓虛擬鍵盤按下 Return 鍵後消失
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
執行顯示如下: