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