《 Swift ---->>UITextField 控件的学习和方法的详细解释
/* 《 Swift ---->>UITextField 控件的学习和方法的详细解释《包含代理》》 * * UITextField 是项目开发中一个必要的控件,它主要用于和用户交互(例如,登陆界 * 面的 账号和密码的输入、注册界面,一些信息的填写),它也可为是,,项目的开 * 始。 */ // Created by 周双建 on 15/12/3. // Copyright ? 2015年 周双建. All rights reserved. import UIKit // 如果要使用其代理 必须准守 其代理协议 UITextFieldDelegate class ViewController: UIViewController,UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() /*********************************************************/ //创建一个UItextField 的对象 let MyTextField = UITextField(frame:CGRectMake(10,20,self.view.frame.size.width-20,40)) self.view.addSubview(MyTextField) /* * 效果显示为: 是一个白色的输入框,没有框线,再输入的时候光标是蓝色的 */ // 进行MyTextField的 模型设置 /* enum UITextBorderStylezs : Int {
case None 无线框 case Line 黑色的细线为框 case Bezel 灰色内投影的矩形框 case RoundedRect 圆角 } */ //圆角输入框 光标为蓝色 MyTextField.borderStyle = UITextBorderStyle.RoundedRect //设置UITextField 的背景色 输入字体为黑色 MyTextField.backgroundColor = UIColor.redColor() /*********************************************************/ //首先清除背景色 MyTextField.backgroundColor = UIColor.clearColor() // 没有效果 MyTextField.background = UIImage(named: "fadcf1d10901b800bd13b745d48e5755.jpg") // UItextfield 的清除按钮 “X”号 /* public enum UITextFieldViewMode : Int { case Never 从来都不显示 case WhileEditing 在其处于编辑状态下显示,其他都不显示 case UnlessEditing 有输入内容后,并失去焦点,才显示;进入编辑就不显示 case Always 再输入内容后才始终显示 特记:无内容不显示 */ //始终显示 : 再输入内容后才始终显示 特记:无内容不显示 MyTextField.clearButtonMode = UITextFieldViewMode.UnlessEditing //UITextField 的暗文输入 MyTextField.secureTextEntry = true /* * 效果为黑色圆点 //UItextfield 的键盘样式 /* public enum UIKeyboardType : Int { case Default 是手机默认键盘,右边是 return 键 左边是 ?123 键 case ASCIICapable case NumbersAndPunctuation 这是一个数字符号键盘, 左边是 ABC 右是 return case URL 这是个网络键盘 case NumberPad 这是一个9 宫格 数字键盘 case PhonePad 这是 9 宫格 数字键盘 带其他符号 case NamePhonePad 英文 36 键 加 左下数字键 case EmailAddress 邮件键盘 @available(iOS 4.1,*) case DecimalPad 这是 9 宫格数字键盘,,左下是个 黑色圆点 @available(iOS 5.0,0)"> case Twitter 这个是分享键盘(包含 邮件、数字等) @available(iOS 7.0,0)"> case WebSearch 这是英文36键 ,左下是数字键 右下是 GO 键 public static var Alphabet: UIKeyboardType { get } // Deprecated */ MyTextField.keyboardType = UIKeyboardType.Alphabet /*******************************************************/ //更改输入框的右下键的显示 /* public enum UIReturnKeyType : Int { case Default 默认 右下 是 return 键 case Go 右下 是 GO键 case Google 右下角 是 search 键 case Join 右下角 是 join 键 case Next 右下角 是 Next 键 case Route 右下角 是 Route 键 case Search 右下角 是 查找键 search case Send 右下角 是 发送 send 键 case Yahoo 右下角 是 查找键 search case Done 右下角 是 Done 键 case EmergencyCall 右下角 是 EmergencyCall 键(重拨键) @available(iOS 9.0,0)"> case Continue */ MyTextField.returnKeyType = UIReturnKeyType.EmergencyCall /************************************************/ //提示输入文字 MyTextField.placeholder = "成功是什么?" /* 效果是浅灰色的,提示文字 /************************************************/ /* 这是修改,提示文字的,颜色,大小,位置(NSMutableParagraphStyle 后期再讲其使用) 等 */ let placehoder = NSAttributedString(string:"我是修改的成功",attributes: [NSForegroundColorAttributeName:UIColor.redColor(),NSFontAttributeName:UIFont.systemFontOfSize(12)]) //再将设置好的 placehoder 给 attributedPlaceholder MyTextField.attributedPlaceholder = placehoder /**************************************************************/ // UItextField 的监控 /* public static var EditingDidBegin: UIControlEvents { get } // UITextField 这个是当输入框成为第一焦点时会 出发 EditingDidBegin 方法 ///////////////////////////////////////////////////// public static var EditingChanged: UIControlEvents { get } 这个参数是,TextField 每输入一次, Change 方法就会调用一次:例如我在输入框里面输入 1 2 3 4 5 这输出的形式 Optional("1") Optional("12") Optional("123") Optional("1234") Optional("12345") /////////////////////////////////////////////////// public static var EditingDidEnd: UIControlEvents { get } 这个参数是 输入框失去焦点或者 不允许编辑时,调用 ////////////////////////////////////////////////// public static var EditingDidEndOnExit: UIControlEvents { get } // 'return key' ending editing 这个是键盘右下角的 Return 键 被按下的时候 会调用 EditingDidEndOnExit 方法 */ MyTextField.addTarget(self,action: "Change:",forControlEvents: UIControlEvents.EditingDidEndOnExit) /******************************************************************/ // UitextField 的代理方法 全解 MyTextField.delegate = self;
// Do any additional setup after loading the view,typically from a nib. } // 这是手势触摸,来结束其 MyTextField 的编辑的 override func touchesBegan(touches: Set<UITouch>,withEvent event: UIEvent?) { self.view.endEditing(true) } /****************************************************************/ func Change(MyTextField:UITextField){ print(MyTextField.text) } /******************************************************************/ func EditingDidBegin (Mttextfield:UITextField){ print(Mttextfield.text) } /*****************************************************************/ func EditingDidEnd(BnTextfield:UITextField){
} /*****************************************************************/ func EditingDidEndOnExit(bvtextfield:UITextField){
} /*****************************************************************/ func textFieldShouldBeginEditing(textField: UITextField) -> Bool { // 这是 输入框将要成为第一相应者的时候调用 return true } /*****************************************************************/ func textFieldDidBeginEditing(textField: UITextField) { //输入框已经成为第一相应者 ,时候调用 } /*****************************************************************/ func textFieldShouldClear(textField: UITextField) -> Bool { //这是点击输入框右边的 清除按钮的时候调用的方法 /*****************************************************************/ func textFieldShouldEndEditing(textField: UITextField) -> Bool { //这是输入框 将要结束编辑时候,调用的方法 /*****************************************************************/ func textFieldShouldReturn(textField: UITextField) -> Bool { // 这个是点击键盘右下角的 return 键的时候调用的方法 return true //返回值 代表 点击是否有效 } /*****************************************************************/ /* textField : 表示当前输入的对象 shouldChangeCharactersInRange :表示当前输入框中将要修改的字符串的长度和位子 replacementString :表示即将替换的字符串 */ func textField(textField: UITextField,shouldChangeCharactersInRange range: NSRange,replacementString string: String) -> Bool { // 返回值表示: 即将输入的内容是否可以输入到输入框里面 false 不可以 true 表示可以 //使作用: 可以在这里过滤,一些你不想让用户输入的文字 if textField.text != "2"{ textField.text = "" } /*****************************************************************/
func textFieldDidEndEditing(textField: UITextField) { // 这是输入框已经结束编辑的时候调用的方法 } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |