Swift UI – 文本输入框(UITextField)

注:代码已升级至Swift4

文本框的创建

文本输入框支持的样式:

UITextBorderStyle.none:无边框
UITextBorderStyle.line:直线边框
UITextBorderStyle.roundedRect:圆角矩形边框
UITextBorderStyle.bezel:边线+阴影

圆角矩形边框样例:

let textField = UITextField(frame: CGRect(x:10, y:60, width:200, height:30))
//设置边框样式为圆角矩形
textField.borderStyle = UITextBorderStyle.roundedRect
self.view.addSubview(textField)

修改边框颜色、粗细、圆角半径

let textField = UITextField(frame: CGRect(x:10, y:60, width:200, height:30))
//设置边框样式为圆角矩形
textField.borderStyle = UITextBorderStyle.roundedRect
self.view.addSubview(textField)

//修改圆角半径的话需要将masksToBounds设为true
textField.layer.masksToBounds = true
textField.layer.cornerRadius = 12.0  //圆角半径
textField.layer.borderWidth = 2.0  //边框粗细
textField.layer.borderColor = UIColor.red.cgColor  //边框颜色

文本框提示文字

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.isSecureTextEntry = true  //输入内容会显示成小黑点

设置文本框关联的键盘类型

Default:系统默认的虚拟键盘
ASCII Capable:显示英文字母的虚拟键盘
Numbers and Punctuation:显示数字和标点的虚拟键盘
URL:显示便于输入url网址的虚拟键盘
Number Pad:显示便于输入数字的虚拟键盘
Phone Pad:显示便于拨号呼叫的虚拟键盘
Name Phone Pad:显示便于聊天拨号的虚拟键盘
Email Address:显示便于输入Email的虚拟键盘
Decimal Pad:显示用于输入数字和小数点的虚拟键盘
Twitter:显示方便些Twitter的虚拟键盘
Web Search:显示便于在网页上书写的虚拟键盘

数字键盘使用样例:

textField.keyboardType = UIKeyboardType.numberPad

使文本框在界面打开时就获取焦点,并弹出输入键盘

textField.becomeFirstResponder()

使文本框失去焦点,并收回键盘

textField.resignFirstResponder()

设置键盘 return 键的样式

textField.returnKeyType = UIReturnKeyType.done  //表示完成输入
textField.returnKeyType = UIReturnKeyType.go  //表示完成输入,同时会跳到另一页
textField.returnKeyType = UIReturnKeyType.search  //表示搜索
textField.returnKeyType = UIReturnKeyType.join  //表示注册用户或添加数据
textField.returnKeyType = UIReturnKeyType.next  //表示继续下一步
textField.returnKeyType = UIReturnKeyType.send  //表示发送

键盘 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
    }
}

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/swift-ui-text-input-box-uitextfield/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Swift UI – 文本输入框(UITextField)
注:代码已升级至Swift4 文本框的创建 文本输入框支持的样式: UITextBorderStyle.none:无边框 UITextBorderStyle.line:直线边框 UITextBorderStyle.roun……
<<上一篇
下一篇>>
文章目录
关闭
目 录