1.0 文本输入框的创建
let textField = UITextField(frame: CGRect(x:10, y:60, width:200, height:30))
let textField = UITextField()
textField.frame = CGRect(x:20,y:30,width:100,height:30)
textField.borderStyle = UITextBorderStyle.roundedRect
self.view.addSubview(textField)
** borderStyle的作用是设置边框样式,由枚举UITextBorderStyle控制: **
UITextBorderStyle属性 | 描述 |
---|
none | 无边框 |
line | 直角矩形边界线 |
bezel | 有阴影的边框 |
roundedRect | 圆角矩形边框 |
1.1文本框基本配置
textField.placeholder = "请输入相关信息"
textField.adjustsFontSizeToFitWidth=true
textField.minimumFontSize=14
textField.textAlignment = .right
textField.textAlignment = .center
textField.textAlignment = .left
textField.contentVerticalAlignment = .top
textField.contentVerticalAlignment = .center
textField.contentVerticalAlignment = .bottom
textField.borderStyle = .none
textField.background = UIImage(named:"background1");
textField.clearButtonMode = .whileEditing
textField.clearButtonMode = .unlessEditing
textField.clearButtonMode = .always
textField.keyboardType = UIKeyboardType.numberPad
textField.becomeFirstResponder()
textField.resignFirstResponder()
textField.returnKeyType = UIReturnKeyType.done
textField.returnKeyType = UIReturnKeyType.go
textField.returnKeyType = UIReturnKeyType.search
textField.returnKeyType = UIReturnKeyType.join
textField.returnKeyType = UIReturnKeyType.next
textField.returnKeyType = UIReturnKeyType.send
textField.textColor = UIColor.cyan
textField.font = UIFont.systemFont(ofSize: 14)
textField.delegate = self
text.backgroundColor = [UIColor whiteColor];
autocorrectionType
的作用是设置时候开启文字自动修复功能,这个貌似只对英文有效,有兴趣的可以试一下,由UITextAutocorrectionType控制,有三个值:default、yes、no
returnType
属性用来控制键盘返回键的样式(只能控制样式,不能修改方法,修改方法可以去代理中设置),通过枚举UIReturnKeyType控制:
UIReturnKeyType属性 | 描述 |
---|
default | 默认,标有Return |
go | 标有Go的按钮 |
google | 标有Google的按钮 |
next | 标有Next的按钮,中文键盘是'下一步' |
route | 标有Route的按钮 |
search | 标有Search的按钮,中文键盘是'搜索' |
send | 标有Send的按钮,中文键盘是'发送' |
yahoo | 标有Yahoo!的按钮 |
done | 标有Done的按钮,中文键盘是‘完成’ |
emergencyCall | 紧急呼叫按钮 |
continue | 标有Continue的按钮,中文键盘是‘继续’ |
clearButtonMode
的作用是控制右侧清除按钮什么时候显示,由枚举 UITextFieldViewMode控制:
UITextFieldViewMode属性 | 描述 |
---|
never | 从不出现 |
whileEditing | 开始编辑时出现 |
unlessEditing | 除了编辑外都出现 |
always | 一直出现 |
keyboardType
属性的作用是控制键盘的显示样式,由枚举UIKeyboardType控制:
UIKeyboardType属性 | 描述 |
---|
default | 默认键盘:支持所有字符 |
asciiCapable | 支持ASCII的默认键盘 |
numbersAndPunctuation | 标准电话键盘,支持+*#等符号 |
URL | URL键盘,有.com按钮;只支持URL字符 |
numberPad | 数字键盘 |
phonePad | 电话键盘 |
namePhonePad | 电话键盘,也支持输入人名字 |
emailAddress | 用于输入电子邮件地址的键盘 |
asciiCapableNumberPad | 支持ASCII的数字键盘 |
decimalPad | 带‘.’的数字键盘 |
twitter | 功能齐全键盘,类似asciiCapable |
webSearch | 带有面向url的附加的默认键盘类型 |
keyboardAppearance
,定义的是键盘的样式,由枚举UIKeyboardAppearance控制:
UIKeyboardAppearance属性 | 描述 |
---|
default | 白色,这个字段是为了兼容以前的版本 |
dark | 黑色 |
light | 白色 |
alert | 黑色,这个字段是为了兼容以前的版本 |
** UITextField的浮动视图(Overlay view)**
例如微信中的添加银行卡页面,输入框右面的两个按钮,就是将按钮放在UITextField的rightView中。这样就能将UITextField和UIButton很好的结合在一起。
textField.leftViewMode = .always
textField.rightViewMode = .always
let leftButton = UIButton(type: .infoDark)
leftButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
textField.leftView = leftButton
let rightButton = UIButton(type: .contactAdd)
rightButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
textField.rightView = rightButton
1.2 代理方法
** 键盘return键的响应 **
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let textField = UITextField(frame: CGRect(x:10,y:160,width:200,height:30))
textField.borderStyle = UITextBorderStyle.roundedRect
textField.returnKeyType = UIReturnKeyType.done
textField.delegate=self
self.view.addSubview(textField)
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
print(textField.text)
return true;
** 关闭键盘的两种方式 **
textfiled.resignFirstResponder()
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
view.endEditing(true)
** 代理方法 **
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
print(string)
return true
func textFieldDidBeginEditing(_ textField: UITextField) {
print("didBegin")
func textFieldDidEndEditing(_ textField: UITextField) {
print("didEnd")
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
print("shouldBegin")
return true
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
print("shouldEnd")
return true
func textFieldShouldClear(_ textField: UITextField) -> Bool {
return false
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
复制代码