iOS 基础控件 UITextField

1. UITextField 的常规使用


// 创建 UITextField
let textField = UITextField(frame: CGRect(x: 30, y: 550, width: 300, height: 40))

// 设置 UITextField 的边框风格
textField.borderStyle = UITextField.BorderStyle.roundedRect

// 设置 UITextField 的文字颜色
textField.textColor = UIColor.black

// 设置 UITextField 的文字对齐方式
textField.textAlignment = NSTextAlignment.left

// 设置 UITextField 的提示文字
textField.placeholder = "please input your name"
        
// 设置 UITextField 的左视图
let leftImageView = UIImageView(image: UIImage(named: "portrait"))

leftImageView.frame = CGRect(x: 0, y: 0, width: 35, height: 35)
textField.leftView = leftImageView

// 设置 UITextField 的右视图
let rightImageView = UIImageView(image: UIImage(named: "EyeInvisible"))
rightImageView.frame = CGRect(x: 0, y: 0, width: 35, height: 35)

textField.rightView = rightImageView

// 设置 UITextField 的左视图显示模式为一直显示
textField.leftViewMode = UITextField.ViewMode.always

// 设置 UITextField 的右视图显示模式为不处于编辑状态时才显示
textField.rightViewMode = UITextField.ViewMode.unlessEditing

textField.clearButtonMode = UITextField.ViewMode.whileEditing

self.view.addSubview(textField)


效果展示:

textfield

2. UITextField 设置监听事件


// 设置 UITextField 的代理为当前视图控制器
textField.delegate = self

// 输入框即将进入编辑状态时回调
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    // 是否允许输入框进入编辑状态
    print("允许输入框进入编辑状态")
    return true
}

// 输入框已经开始编辑时回调
func textFieldDidBeginEditing(_ textField: UITextField) {
    print("输入框已经开始编辑")
}

// 输入框即将结束编辑时回调
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
    // 是否允许结束编辑状态
    print("输入框即将结束编辑")
    return true
}

// 输入框已经结束编辑时回调
func textFieldDidEndEditing(_ textField: UITextField) {
    print("输入框已经结束编辑时回调")
}

// 输入框文本发生变化时回调
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    print("输入框文本发生变化: ", String(describing: textField.text?.debugDescription), string)
    return true
}

// 输入框的清除按钮被点击时回调
func textFieldShouldClear(_ textField: UITextField) -> Bool {
    print("输入框的清除按钮被点击")
    // 返回 true 允许清除
    return true
}

// 键盘的 return 被点击时回调
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    print("键盘的 return 被点击")
    // 收起键盘
    textField.resignFirstResponder()
    return true
}

// 输入框的光标发生变化时回调
func textFieldDidChangeSelection(_ textField: UITextField) {
    print("输入框的光标发生变化: ", String(describing: textField.text?.debugDescription))
}
    

日志打印:
textfield-event

附 Github 源码:

ViewController.swift

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐