《 Swift ---->>UITextField 控件的学习和方法的详细解释《包含代理》》

来源:互联网 发布:高端黑 知乎 编辑:程序博客网 时间:2024/04/20 04:17

/*      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 

                是手机默认键盘,右边是 return     左边是   123

            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, *)

            case Twitter 

                这个是分享键盘(包含 邮件、数字等)

            @available(iOS 7.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, *)

            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 {

         //这是点击输入框右边的清除按钮的时候调用的方法

        return true

    }

/*****************************************************************/

    func textFieldShouldEndEditing(textField: UITextField) -> Bool {

         //这是输入框将要结束编辑时候,调用的方法

        return true

    }

/*****************************************************************/

    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 = ""

        }

        return true

    }

/*****************************************************************/

    

    func textFieldDidEndEditing(textField: UITextField) {

        // 这是输入框已经结束编辑的时候调用的方法

    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }



}


0 0
原创粉丝点击