Swift - 文本输入框(UITextField)的基本用法

(本文代码已升级至Swift5)

1、文本框的创建,有如下几个样式:

UITextField.BorderStyle.none:无边框
UITextField.BorderStyle.line:直线边框
UITextField.BorderStyle.roundedRect:圆角矩形边框
UITextField.BorderStyle.bezel:边线+阴影
圆角矩形边框样例:


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

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

image.png
let textField = UITextField(frame: CGRect(x:30, y:60, width:200, height:30))
//设置边框样式为圆角矩形
textField.borderStyle = UITextField.BorderStyle.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.blue.cgColor //边框颜色

3、文本框提示文字

image.png
textField.placeholder = "小驴拉磨,坚持不懈"

4、文字大小超过文本框长度时自动缩小字号,而不是隐藏显示省略号

textField.adjustsFontSizeToFitWidth=true  //当文字超出文本框宽度时,自动调整文字大小
textField.minimumFontSize=14  //最小可缩小的字号

5、水平/垂直对齐方式

/** 水平对齐 **/
textField.textAlignment = .right //水平右对齐
textField.textAlignment = .center //水平居中对齐
textField.textAlignment = .left //水平左对齐
 
/** 垂直对齐 **/
textField.contentVerticalAlignment = .top  //垂直向上对齐
textField.contentVerticalAlignment = .center  //垂直居中对齐
textField.contentVerticalAlignment = .bottom  //垂直向下对齐

6、背景图片设置

textField.borderStyle = .none //先要去除边框样式
textField.background = UIImage(named:"background1");

7、清除按钮(输入框内右侧小叉)

image.png
textField.clearButtonMode = .whileEditing  //编辑时出现清除按钮
textField.clearButtonMode = .unlessEditing  //编辑时不出现,编辑后才出现清除按钮
textField.clearButtonMode = .always  //一直显示清除按钮

8、密码输入框

image.png
textField.isSecureTextEntry = true //输入内容会显示成小黑点

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

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


    image.png
textField.keyboardType = UIKeyboardType.URL

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

textField.becomeFirstResponder()

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

textField.resignFirstResponder()

12、设置键盘 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 //表示发送

以发送样式(next)为例:


image.png

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

14、首字母是否大写

  • none:不自动大写
  • words:单词首字母大写
  • sentences:句子的首字母大写
  • allCharacters: 所有字母都大写
textField.autocapitalizationType = UITextAutocapitalizationType.none;

15、键盘外观

  • dark:默认外观,浅灰色
  • light:深灰 石墨色
textField.keyboardAppearance = UIKeyboardAppearance.default
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335