The Swift Code之UITextField的使用,及事件委托

UITextField是用来文本输入的,比如常用的登录用户名和密码输入等等,那我们直接进入主题吧

1.创建普通的UITextField

//构建基本的UITextField
varuitf:UITextField=UITextField(frame:CGRect(x:50,y:50,width:200,height:30))
uitf.backgroundColor=UIColor.whiteColor()
uitf.placeholder="普通UITextField"

2.构建密码输入框

varuitf1:UITextField=UITextField(frame:CGRect(x:50,y:90,height:35))
uitf1.placeholder="密码输入框"
uitf1.borderStyle=UITextBorderStyle.RoundedRect//边框样式
uitf1.backgroundColor=UIColor.whiteColor()
uitf1.secureTextEntry=true//密码输入框

3.设置UITextField的左边视图

varuitf2:UITextField=UITextField(frame:CGRect(x:50,y:135,height:30))
uitf2.placeholder="请输入购买的物品"
uitf2.backgroundColor=UIColor.whiteColor()
varimg:UIImageView=UIImageView(image:UIImage(named:"buy.png")!)
img.frame=CGRect(x:5,y:5,width:40,height:30)
img.contentMode=UIViewContentMode.ScaleAspectFit
uitf2.leftView=img
uitf2.leftViewMode=UITextFieldViewMode.Always
uitf2.leftViewRectForBounds(CGRect(x:0,y:0,width:44,height:44))

4.设置UITextField的右边边视图

varuitf3:UITextField=UITextField(frame:CGRect(x:50,y:175,height:35))
uitf3.placeholder="请输入购买的物品"
uitf3.backgroundColor=UIColor.whiteColor()
uitf3.layer.cornerRadius=2
uitf3.layer.borderWidth=1
uitf3.layer.borderColor=UIColor.greenColor().CGColor

//uitf3.borderStyle=UITextBorderStyle.RoundedRect
varimg1:UIImageView=UIImageView(image:UIImage(named:"buy.png")!)
img1.frame=CGRect(x:5,height:30)
img1.contentMode=UIViewContentMode.ScaleAspectFit
uitf3.rightView=img1
uitf3.rightViewMode=UITextFieldViewMode.Always

5.委托事件,及加入clear按钮

varuitf4:UITextField=UITextField(frame:CGRect(x:50,y:220,height:35))
uitf4.backgroundColor=UIColor.whiteColor()
uitf4.delegate=self
uitf4.clearButtonMode=UITextFieldViewMode.WhileEditing

当鼠标进入UITextField时,响应textFieldShouldBeginEditing -> textFieldDidBeginEditing
当鼠标退出UITextField时,响应textFieldShouldEndEditing -> textFieldDidEndEditing
当输入文本内容时,响应textField
在输入框里,在虚拟键盘上点击return时,响应textFieldShouldReturn
在输入框里,点击UITextField的clear按钮,响应textFieldShouldClear

functextField(textField:UITextField,shouldChangeCharactersInRangerange:NSRange,replacementStringstring:String)->Bool{
NSLog("textField")
returntrue
}

functextFieldShouldBeginEditing(textField:UITextField)->Bool{


NSLog("textFieldShouldBeginEditing")

returntrue
}

functextFieldDidBeginEditing(textField:UITextField){

NSLog("textFieldDidBeginEditing")
}


functextFieldShouldEndEditing(textField:UITextField)->Bool{


NSLog("textFieldShouldEndEditing")

returntrue

}


functextFieldDidEndEditing(textField:UITextField){

NSLog("textFieldDidEndEditing")
}



functextFieldShouldClear(textField:UITextField)->Bool{

NSLog("textFieldShouldClear")

returntrue
}


functextFieldShouldReturn(textField:UITextField)->Bool{

NSLog("textFieldShouldReturn")

textField.resignFirstResponder()//这个隐藏(放弃)虚拟键盘

returntrue

}

全部代码

importUIKit

classViewController:UIViewController,UITextFieldDelegate{

overridefuncdidReceiveMemoryWarning(){
super.didReceiveMemoryWarning()
//Disposeofanyresourcesthatcanberecreated.
}


overridefuncviewDidLoad(){
super.viewDidLoad()
//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.

//构建基本的UITextField
varuitf:UITextField=UITextField(frame:CGRect(x:50,height:30))
uitf.backgroundColor=UIColor.whiteColor()
uitf.placeholder="普通UITextField"
self.view.addSubview(uitf)

//构建密码输入框
varuitf1:UITextField=UITextField(frame:CGRect(x:50,height:35))
uitf1.placeholder="密码输入框"
uitf1.borderStyle=UITextBorderStyle.RoundedRect//边框样式
uitf1.backgroundColor=UIColor.whiteColor()
uitf1.secureTextEntry=true//密码输入框
self.view.addSubview(uitf1)

//设置UITextField的左边视图
varuitf2:UITextField=UITextField(frame:CGRect(x:50,height:44))
self.view.addSubview(uitf2)


//设置UITextField的右边边视图
varuitf3:UITextField=UITextField(frame:CGRect(x:50,height:30)
img1.contentMode=UIViewContentMode.ScaleAspectFit
uitf3.rightView=img1
uitf3.rightViewMode=UITextFieldViewMode.Always
self.view.addSubview(uitf3)

//委托事件
varuitf4:UITextField=UITextField(frame:CGRect(x:50,height:35))
uitf4.backgroundColor=UIColor.whiteColor()
uitf4.delegate=self
uitf4.clearButtonMode=UITextFieldViewMode.WhileEditing
self.view.addSubview(uitf4)
}


////////
//当鼠标进入UITextField时,响应textFieldShouldBeginEditing->textFieldDidBeginEditing
//当鼠标退出UITextField时,响应textFieldShouldEndEditing->textFieldDidEndEditing
//当输入文本内容时,响应textField
//在输入框里,响应textFieldShouldReturn
//在输入框里,响应textFieldShouldClear
functextField(textField:UITextField,replacementStringstring:String)->Bool{
NSLog("textField")
returntrue
}

functextFieldShouldBeginEditing(textField:UITextField)->Bool{


NSLog("textFieldShouldBeginEditing")

returntrue
}

functextFieldDidBeginEditing(textField:UITextField){

NSLog("textFieldDidBeginEditing")
}


functextFieldShouldEndEditing(textField:UITextField)->Bool{


NSLog("textFieldShouldEndEditing")

returntrue

}


functextFieldDidEndEditing(textField:UITextField){

NSLog("textFieldDidEndEditing")
}



functextFieldShouldClear(textField:UITextField)->Bool{

NSLog("textFieldShouldClear")

returntrue
}


functextFieldShouldReturn(textField:UITextField)->Bool{

NSLog("textFieldShouldReturn")

textField.resignFirstResponder()//这个隐藏(放弃)虚拟键盘

returntrue

}



}

效果图

865E70FE-173F-4942-81B7-1DF68487C16C.png

转载自吴统威的博客:http://www.wutongwei.com/front/infor_showone.tweb?id=98

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...