斯威夫特 – 文本输入框(UITextField)的用法

1.评释控件UITextField

import UIKit

1,文本框的创始,有如下多少个样式:

1.创制二个带边框的UITextView

1、UITextField文本输入框

在App开垦中,文本输入框的效用是提供与客户议和的工具。

override func viewDidLoad() { super.viewDidLoad() //定义控件x:30 y:100 width:300 height:40 let textField = UITextField(frame: CGRect(x: 30, y: 100, width: 300, height: 40)) //由于背景是白色的,所以设置背景色才能看得见textField textField.backgroundColor = UIColor.gray //将控件添加到子视图中 self.view.addSubview(textField)}
class ViewController: UIViewController        ,UITextFieldDelegate,UITextViewDelegate,UIActionSheet  Delegate,UIAlertViewDelegate{
override func viewDidLoad() {
    super.viewDidLoad()

   let textField:UITextField = UITextField(frame: CGRectMake(10,120,200,30))

    textField.borderStyle = UITextBorderStyle.RoundedRect

    textField.placeholder = "请输入用户名"

    //文字大小超过文本框长度时自动缩小字号,而不是隐藏显示省略号
    textField.adjustsFontSizeToFitWidth = true//当文字超出文本框宽度时,自动调整文字大小
    textField.minimumFontSize = 14//最小可缩小的字号

    textField.textAlignment = NSTextAlignment.Right

// textField.co  ntentVerticalAlignment = .Bottom
    textField.delegate = self;

    self.view.addSubview(textField)

//textField.borderStyle = .None

//textField.background = UIImage(named: "lalala")
    textField.clearButtonMode = UITextFieldViewMode.Always


    textField.returnKeyType = UIReturnKeyType.Done
 }



func textFieldShouldReturn(textField:UITextField) ->Bool {
    //使文本框在界面打开时就获取焦点,并弹出输入键盘
    textField.resignFirstResponder()

    print(textField.text)
    return true
}
}

UITextBorderStyle.None:无边框

override func viewDidLoad() {
        super.viewDidLoad()
        //定义控件x:30 y:100 width:300 height:40
        let textView = UITextView(frame: CGRect(x: 30, y: 100, width: 300, height: 40))
        self.view.addSubview(textView)
        textView.layer.borderWidth = 1//边框宽度
        textView.layer.borderColor = UIColor.black.cgColor//边框颜色
        textView.text = "这是一个黑边框的UITextView"//设置文本内容
    }

2、UITextField 的秘技和品质的牵线

运作结果如下图所示:图片 1简易注明

UITextBorderStyle.Line:直线边框

图片 2

1、初始化

/* 文本框的初始化*/
var NetWorkTextField = UITextField.init()
NetWorkTextField = UITextField.init(frame: CGRect.init(x: 10, y: 70, width: 100, height: 50))

2.TextField边框样式,暗许无边框

UITextBorderStyle.RoundedRect:圆角矩形边框

普通定义

2、设置大小

/**
 设置大小
 */
NetWorkTextField.frame = CGRect.init(x: 10, y: 80, width: 200, height: 40)
  • UITextBorderStyle.none:无边框
  • UITextBorderStyle.line:直线边框
  • UITextBorderStyle.roundedRect:圆角矩形边框
  • UITextBorderStyle.bezel:边线+阴影比如:

UITextBorderStyle.Bezel:边线+阴影

2.安装字体font属性,字体颜色textColor,对齐情势text阿里gnment

3、设置输入框的体裁

/**
 设置样式
 bezel : 是矩形的浅黑线框样式
 line  : 是矩形的黑线框样式
 roundedRect : 四个圆角的浅灰色矩形框
 none:   系统默认(全白色)
 */
NetWorkTextField.borderStyle = .roundedRect
NetWorkTextField.borderStyle = UITextBorderStyle.roundedRect

1

textView.font = UIFont.boldSystemFont(ofSize: 12)//设置字体font属性
textView.textColor = UIColor.red//设置字体颜色
textView.textAlignment = .center//设置内容对齐方式

4、显示提醒文字

/**
 显示提示文字
 */
NetWorkTextField.placeholder = "搜一搜"
override func viewDidLoad() { super.viewDidLoad() //定义控件x:30 y:100 width:300 height:40 let textField = UITextField(frame: CGRect(x: 30, y: 100, width: 300, height: 40)) //设置边框样式 边线+阴影 textField.borderStyle = .bezel //将控件添加到子视图中 self.view.addSubview(textField) }

2

图片 3

5、退换指示文字的样式

/**
 更改提示文字的颜色和大小
 */
NetWorkTextField.attributedPlaceholder = NSAttributedString.init(string: "看一看", attributes: [NSFontAttributeName:UIFont.boldSystemFont(ofSize: 18),NSForegroundColorAttributeName:UIColor.magenta])

效益如下:图片 4边线+阴影

3

设置属性

6、设置清楚按键

/**
 设置全部清除按钮
 always :输入框内有输入的情况下,还会一直显示
 whileEditing : 当输入框处于编辑的情况下会显示清除按钮,当输入框不在编辑的情况下,清除按钮就会消失。
 never : 就是一直都不显示全部清除按钮
 unlessEditing : 输入框在编辑的时候不出现清除按钮,当输入框结束编辑的时候,清除按钮就会出现
 */
NetWorkTextField.clearButtonMode = UITextFieldViewMode.unlessEditing

3.设置边框颜色、线宽、圆角半径

4lettextField =UITextField(frame:CGRectMake(10,160,200,30))

3.装置是或不是可编制,内容是还是不是可选

7、输入框文字显示明文照旧暗文

/**
 控制输入的内容是以明文显示还是暗纹显示
 isSecureTextEntry 
 true : 是暗纹显示
 false : 明文显示(默认)
 */
NetWorkTextField.isSecureTextEntry = true
//需现将masksToBounds设置为truetextField.layer.masksToBounds = truetextField.layer.borderColor = UIColor.blue.cgColortextField.layer.borderWidth = 2.0textField.layer.cornerRadius = 5.0

//设置边框样式为圆角矩形

textView.isEditable = false//textView不可编辑
textView.isSelectable = true//内容可选

8、设置输入文字的颜料&大小&展现的体裁

/**
 设置输入文字的大小
 */
NetWorkTextField.font = UIFont.systemFont(ofSize: 16)

/**
 设置输入文字的颜色
 */
NetWorkTextField.textColor = UIColor.red

/**
 设置输入文字在输入框显示位置
 NSTextAlignment
 left : 显示的文字靠近输入框的左边显示(系统默认)
 right: 显示的文字靠近输入框的右边显示
 center :显示文字在输入框的中间
 */
NetWorkTextField.textAlignment = NSTextAlignment.center

功用如下:图片 5修改边框样式

textField.borderStyle =UITextBorderStyle.RoundedRect

运作效果如下图所示:

9、设置输入框是还是不是以起头编制,就通晓原有内容

/**
 设置是否开始编辑就清楚输入框的内容
 clearsOnBeginEditing
 true : 输入框以开始编辑就清楚输入框里面的所有内容
 false : 输入框开始编辑不清楚里面原有的内容(系统默认)
 */
NetWorkTextField.clearsOnBeginEditing = true

4.文本框提示文字以及品质设置

self.view.addSubview(textField)

图片 6

10、UITextField 的代理

/**
 输入框的代理
 */
NetWorkTextField.delegate = self

/****************************************分割线**********************************************/
/*!
 输入框开始编辑调用此函数
 */
func textFieldDidBeginEditing(_ textField: UITextField) {
    print("textFieldDidBeginEditing")
}
/**
 是否允许编辑
 */
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    return true
}
/*!
 文本框结束编辑的时候调用此函数
 */
func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) {
    print("textFieldDidEndEditing")
}
/*!
 过滤输入的内容,是否允许显示
 */
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    return true
}
/**
 控制输入框,不允许一次行清楚
 系统默认 true
 */
func textFieldShouldClear(_ textField: UITextField) -> Bool {
     return false
}
/**
 禁止输入框使用键盘上的 Retrun 键
 */
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
     return false
}
/**
 禁止编辑结束
 */
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
     return false
}
/**
 文本输入框结束编辑时,调用的函数
 */
func textFieldDidEndEditing(_ textField: UITextField) {
    print("textFieldDidEndEditing")
}
textField.placeholder = "这是提示文本"//提示文本//当文字超出文本框宽度时,自动调整文字大小,默认是以省略号代替textField.adjustsFontSizeToFitWidth = truetextField.minimumFontSize=10 //最小可缩小的字号

2,文本框提醒文字

剧情可选

11、UItextField 的通知

/**
 文本输入框的通知
 */
NotificationCenter.default.addObserver(self, selector: #selector(changeValue), name:Notification.Name.UITextFieldTextDidChange, object: NetWorkTextField)

NotificationCenter.default.addObserver(self, selector: #selector(endEdit), name: Notification.Name.UITextFieldTextDidEndEditing, object: NetWorkTextField)

NotificationCenter.default.addObserver(self, selector: #selector(beginInput(_:)), name: Notification.Name.UITextFieldTextDidBeginEditing, object: NetWorkTextField)

/****************************************************通知的方法实现************************************************/

/**
 输入框内的值发生变化就会触发改函数
 */
func changeValue() -> Void {

}
/**
 输入框结束编辑的时候触发该函数
 */
func endEdit() -> Void {

}

/**
 文本输入框开始输入发起通知,调用该函数
 */
func beginInput(_ notion:Notification) -> Void {

}

意义如下:图片 7自适应.gif

1

4.给文字中的电话号码和网站自动加链接

12、调整输入框的背景观&输入键盘& 键盘的Return键的显示

/**
 设置输入框的背景色
 */
NetWorkTextField.backgroundColor = UIColor.blue

/**
 设置输入框弹出的键盘
 键盘的样式有好多种,后续再说
 */
NetWorkTextField.keyboardType = UIKeyboardType.asciiCapable

/**
 设置输入框键盘的returen 键的文字
 后续在说
 */
NetWorkTextField.returnKeyType = .search

5.设置水平/垂直对齐方式

textField.placeholder=”请输入客户名”

textView.dataDetectorTypes = [] //都不加链接
textView.dataDetectorTypes = UIDataDetectorTypes.phoneNumber //只有电话加链接
textView.dataDetectorTypes = UIDataDetectorTypes.link //只有网址加链接
textView.dataDetectorTypes = UIDataDetectorTypes.all //电话和网址都加
/** 水平对齐 **/textField.textAlignment = .right //水平右对齐textField.textAlignment = .center //水平居中对齐textField.textAlignment = .left //水平左对齐 /** 垂直对齐 **/textField.contentVerticalAlignment = .top //垂直向上对齐textField.contentVerticalAlignment = .center //垂直居中对齐textField.contentVerticalAlignment = .bottom //垂直向下对齐

3,文字大小超越文本框长度时自动减少字号,实际不是隐匿展现省略号

要完结增加链接首先必要将textview设置为不可编辑状态,比方:

6.设置背景图片

1

textView.isEditable = false//textView不可编辑
textView.dataDetectorTypes = .all//设置链接类型
textView.text = "phone:13859222222,\n link:https://www.baidu.com"//设置文本内容
textField.borderStyle = .none //先要去除边框样式textField.background = UIImage(named:"bgImg");

2textField.adjustsFontSizeToFitWidth=true//当文字超出文本框宽度时,自动调治文字大小

图片 8

7.装置清除开关

textField.minimumFontSize=14//最小可降低的字号

link.gif

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

4,水平/垂直对齐方式

5.自定义选用菜单
时一时大家在选拔完内容之后除复制,剪切还可以做一些区别平常的操作,比方分享到微信之类的交际媒体上,上面我们举三个自定义接纳菜单的简要例子

8.设置键盘输入类型

1

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        //定义控件x:30 y:100 width:300 height:40
        let textView = UITextView(frame: CGRect(x: 30, y: 100, width: 300, height: self.view.bounds.height - 100))
        self.view.addSubview(textView)
        textView.layer.borderWidth = 1//边框宽度

        textView.layer.borderColor = UIColor.black.cgColor//边框颜色
        textView.font = UIFont.boldSystemFont(ofSize: 12)//设置字体font属性
        textView.textColor = UIColor.black//设置字体颜色
        textView.textAlignment = .center//设置内容对齐方式

        textView.isSelectable = true//内容可选

        textView.isEditable = true//textView不可编辑
        textView.dataDetectorTypes = .all//设置链接类型
        textView.text = "从明天起,做一个幸福的人\n喂马,劈柴,周游世界\n从明天起,关心粮食和蔬菜\n我有一所房子,面朝大海,春暖花开\n从明天起,和每一个亲人通信\n告诉他们我的幸福\n那幸福的闪电告诉我的\n我将告诉每一个人\n给每一条河每一座山取一个温暖的名字"//设置文本内容

        let wx = UIMenuItem(title: "微信", action: #selector(openWX))
        let menu = UIMenuController()
        menu.menuItems = [wx]
    }

    @objc func openWX(){
        print("打开微信")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
  • Default:系统暗中认可的杜撰键盘
  • ASCII Capable:展现日文字母的虚构键盘
  • Numbers and Punctuation:展现数字和标点的设想键盘
  • U瑞虎L:展现便于输入url网站的设想键盘
  • Number Pad:展现便于输入数字的设想键盘
  • Phone Pad:显示便于拨号呼叫的杜撰键盘
  • Name Phone Pad:展现便于聊天拨号的虚构键盘
  • Email Address:呈现便于输入Email的虚构键盘
  • Decimal Pad:显示用于输入数字和小数点的虚构键盘
  • Facebook:显示方便些推特的设想键盘
  • Web Search:显示便于在网页上书写的设想键盘

2

运作效果如下图所示:

3

图片 9

textField.becomeFirstResponder()//获取输入焦点,并弹出键盘//textField.resignFirstResponder()//失去焦点,并收起键盘textField.keyboardType = .numberPad//设置键盘输入模式

4

自定义选取菜单

要是您在行使模拟器的时候发掘键盘没有弹出来,能够透过上面包车型客车操作弹出键盘,Hardwar–>Keyboard–>撤销Connect
Hardware
Keyboard的当选状态,只怕你直接选择急迅键shift+command+k就可以弹出键盘,图片 10弹出键盘

5

小说只是助教了UITextView最基础的用法,怎么着通过自定义采纳菜单完毕将精选的故事情节分享到微信,风乐趣的同伙能够自动去查一查资料

9.设置键盘上return键的体裁

6

  • done //表示实现输入
  • go //表示完毕输入,同一时间会跳到另一页
  • search //表示搜索
  • join //表示注册客商或抬高数据
  • next //表示继续下一步
  • send //表示发送

7

8

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

9/** 水平对齐 **/

10.为return加多响应时间,首先要求贯彻公约UITextFieldDelegate,然后为textField绑定return点击事件

textField.textAlignment = .Right//水平右对齐

class ViewController: UIViewController, UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() //定义控件x:30 y:100 width:300 height:40 let textField = UITextField(frame: CGRect(x: 30, y: 100, width: 300, height: 40)) //设置边框样式 圆角 textField.borderStyle = .roundedRect //将控件添加到子视图中 self.view.addSubview(textField) //需现将masksToBounds设置为true textField.layer.masksToBounds = true textField.layer.borderColor = UIColor.blue.cgColor textField.layer.borderWidth = 2.0 textField.layer.cornerRadius = 5.0 textField.placeholder = "这是提示文本"//提示文本 //当文字超出文本框宽度时,自动调整文字大小,默认是以省略号代替 textField.adjustsFontSizeToFitWidth = true textField.minimumFontSize=10 //最小可缩小的字号 textField.becomeFirstResponder()//获取输入焦点,并弹出键盘 textField.keyboardType = .webSearch//设置键盘输入模式 textField.returnKeyType = .done //设置return键样式 textField.delegate = self //为textField绑定事件 } //实现return点击事件 func textFieldShouldReturn(_ textField: UITextField) -> Bool { print(textField.text ?? "") return true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}

textField.textAlignment = .Center//水平居中对齐

运转结果如下图所示:图片 11return点击事件.png

textField.textAlignment = .Left//水平左对齐

世家再深造的长河中,必得求多入手尝试,尽量把每种属性都尝试一下探望运维的功用,借使碰着本文未有讲到的内容,请依照具体情状实行搜寻。

/** 垂直对齐 **/

textField.contentVerticalAlignment = .Top//垂直向上对齐

textField.contentVertical阿里gnment = .Center//垂直居中对齐

textField.contentVerticalAlignment = .Bottom//垂直向下对齐

5,背景图片设置

1

2textField.borderStyle = .None//先要刨除边框样式

textField.background=UIImage(named:”background1″);

6,清除按键(输入框内左边小叉)

1

2

3textField.clearButtonMode=UITextFieldViewMode.WhileEditing//编辑时出现清除开关

textField.clearButtonMode=UITextFieldViewMode.UnlessEditing//编辑时不出现,编辑后才面世清除按键

text菲尔德.clearButtonMode=UITextFieldViewMode.Always//一直显示清除开关

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

Default:系统默许的虚拟键盘

ASCII Capable:突显立陶宛语字母的杜撰键盘

Numbers and Punctuation:展现数字和标点的杜撰键盘

U奇骏L:呈现便于输入数字的设想键盘

Number Pad:展现便于输入数字的虚构键盘

Phone Pad:彰显便于拨号呼叫的虚拟键盘

Name Phone Pad:呈现便于聊天拨号的杜撰键盘

Email Address:呈现便于输入Email的杜撰键盘

Decimal Pad:呈现用于输入数字和小数点的杜撰键盘

Twitter:显示方便些推特(TWTR.US)的虚构键盘

Web Search:呈现便于在网页上挥洒的设想键盘

1

textField.keyboardType =UIKeyboardType.NumberPad

8,使文本框在分界面张开时就获得关节,并弹出输入键盘

1

textField.becomeFirstResponder()

9,使文本框失去主题,并撤回键盘

1

textField.resignfirstresponder()

10,设置键盘return键的样式

1

2

3

4

5

6textField.returnKeyType =UIReturnKeyType.Done//表示实现输入

textField.returnKeyType
=UIReturnKeyType.Go//代表完结输入,同有的时候间会跳到另一页

textField.returnKeyType =UIReturnKeyType.Search//表示寻觅

textField.returnKeyType =UIReturnKeyType.Join//表示注册客商或抬高数据

textField.returnKeyType =UIReturnKeyType.Next//表示继续下一步

textField.returnKeyType =UIReturnKeyType.Send//代表发送

11,键盘return键的响应

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22classViewController:UIViewController,UITextFieldDelegate{

overridefuncviewDidLoad() {

super.viewDidLoad()

lettextField =UITextField(frame:CGRectMake(10,160,200,30))

//设置边框样式为圆角矩形

textField.borderStyle =UITextBorderStyle.RoundedRect

textField.returnKeyType =UIReturnKeyType.Done

textField.delegate=self

self.view.addSubview(textField)

}

functextFieldShouldReturn(textField:UITextField) ->Bool

{

//收起键盘

textField.resignFirstResponder()

//打字与印刷出文本框中的值

print(textField.text)

returntrue;

}

}

article end operate_box

发表评论

电子邮件地址不会被公开。 必填项已用*标注