UITextField 單行輸入框


加入協定

class ViewController: UIViewController, UITextFieldDelegate {

宣告資料

var textfield = UITextField()
let WIDTH = UIScreen.main.bounds.size.width

viewDidLoad

view.backgroundColor = .lightGray
    // frame
    /*textfield.frame = CGRect(x: 0,
                               y: 0,
                               width: 200
                               height: 50)*/
    // 大小
    textfield.frame.size = CGSize(width: 200, 
                                  height: 50)
    // 座標
    /*textfield.frame.origin = CGPoint(x: 0,
                                       y: 0)*/
    // 中心點
    textfield.center = CGPoint(x: WIDTH / 2, 
                               y: 75)
    // 背景顏色
    textfield.backgroundColor = .white
    // 背景圖片
    //textfield.background = UIImage?
    // 連接delegate
    textfield.delegate = self
    // 提示文字
    //testfield.placeholder = "請輸入文字"
    // 提示文字, 文字顏色
    textfield.attributedPlaceholder = NSAttributedString(
        string: "請輸入文字", 
        attributes: [NSForegroundColorAttributeName: UIColor.lightGray]
    )
    // 預設文字
    //textfield.text = "test"
    // 文字顏色
    textfield.textColor = .black
    // 系統預設字體
    //textfield.font = UIFont.systemFont(ofSize: 15)
    // 自訂字體
    textfield.font = UIFont(name: "Helvetica-Light", 
                            size: 13)
    // 顯示為密碼輸入
    //textfield.isSecureTextEntry = true
    // 字體最小
    //textfield.minimumFontSize = 16
    // 內容自適應標籤大小
    //textfield.adjustsFontSizeToFitWidth = true
    // 內容可選
    //textfield.isSelectable = false
    // 修改文字樣式, ex. 加粗, 新增底線
    //textfield.allowsEditingTextAttributes = true
    // 文字水平對齊
    textfield.textAlignment = .center
    /* 
    NSTextAlignment
     .left          向左對齊
     .center        置中
     .right         向右對齊
     .justified     最後一行對齊
     .natural       預設
     */
    // 文字垂直對齊
    textfield.contentVerticalAlignment = .center
    /* 
    UIControlContentVerticalAlignment
     .bottom     向下對齊
     .center     置中
     .top        向上對齊
     .fill       填滿
     */
    // 清除內容按鈕
    //textfield.clearButtonMode = .never
    /* 
    UITextFieldViewMode
     .never             不顯示
     .whileEditing      編輯時顯示
     .unlessEditing     結束編輯後顯示
     .always            一直顯示
     */
    // 英文大寫
    //textfield.autocapitalizationType = .none
    /* 
    UITextAutocapitalizationType
     .none              不設定大寫
     .words             單字開頭大寫
     .sentences         句子開頭大寫
     .allCharacters     全部大寫
     */
    // 左邊視圖frame
    /*textfield.leftView = UIView(frame: CGRect(x: 0, 
                                                y: 0, 
                                                width: 20, 
                                                height: 20))*/
    // 左邊視圖顯示模式
    //textfield.leftViewMode = .whileEditing
    /* 
    UITextFieldViewMode
     .never             編輯時顯示
     .whileEditing      編輯時顯示
     .unlessEditing     結束編輯後顯示
     .always            一直顯示
     */
    // 右邊視圖
    /*textfield.rightView = UIView(frame: CGRect(x: 0, 
                                                 y: 0, 
                                                 width: 20, 
                                                 height: 20))*/
    // 邊框樣式
    //textfield.borderStyle = .line
    /* 
    UITextBorderStyle
     .none            無邊框
     .line            黑色方形
     .bezel           灰色方形
     .roundedRect     原型
     */
    // 圓角
    textfield.layer.cornerRadius = 10 
    // 邊框寬度
    textfield.layer.borderWidth = 2
    // 邊框顏色
    textfield.layer.borderColor = UIColor.black.cgColor
    // 加入動作
    textfield.addTarget(self, 
                        action: #selector(hidekeyboard), 
                        for: .editingDidEndOnExit)
    /* 
    UIControlEvents
     .editingDidBegin         開始編輯
     .editingChanged          內容改變
     .editingDidEnd           結束編輯
     .editingDidEndOnExit     return 鍵
     .allEditingEvents        所有編輯動作
     */
    // 鍵盤樣式
    textfield.keyboardType = .default
    /*
    UIKeyboardType           
     .default                   預設
     .numbersAndPunctuation     數字, 符號
     .numberPad                 數字
     .decimalPad                數字(.)
     .phonePad                  數字(+, *, #)
     .namePhonePad              英文
     .URL                       英文(., /, .com)
     .emailAddress              英文(@, .)
     .twitter                   英文(@, #)
     .asciiCapable              英文(不能切換語言)
     .webSearch                 英文(return 鍵為go)
     */
    // return 鍵樣式
    textfield.returnKeyType = .default
    /*
    UIReturnKeyType     
     .default           return
     .go                Go
     .join              Join
     .next              Next
     .route             Route
     .send              Send
     .search            Search
     .google            Search
     .yahoo             Search
     .done              Done
     .emergencyCall     Emergency Call
     .continue          Continue
     */
view.addSubview(textfield)

建立關閉鍵盤動作

func hidekeyboard(sender: UITextField) {
    view.endEditing(true)
}

更多常用設定

// 編輯開始前
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
}
// 退出編輯前
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
}
// 開始編輯
func textFieldDidBeginEditing(_ textField: UITextField) {
}
// 結束編輯
func textFieldDidEndEditing(_ textField: UITextField) {
}
// 清除按钮
func textFieldShouldClear(_ textField: UITextField) -> Bool {
}
// 鍵盤return 按鈕
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
}

results matching ""

    No results matching ""