正常情况下,只要触摸焦点放在输入框如textfield\textview上,自动会弹出键盘,所以,隐藏键盘的最终方法就是让控件失去焦点。textfield.resignfirstresponder()
textview.resignfirstresponder()
用例一、textfield按enter键隐藏实现委托uitextfielddelegate 方法
func textfieldshouldreturn(textfield: uitextfield) -> bool {
textfield.resignfirstresponder()
return true
}用例二、点击其他任意地方隐藏override func touchesbegan(touches: set<uitouch>, withevent event: uievent?) {
self.textfield.resignfirstresponder()
self.textview.resignfirstresponder()
}
用例三、点击手势隐藏let tapgesture:uitapgesturerecognizer = uitapgesturerecognizer(target: self, action: "hidekeyboard:")
self.view.addgesturerecognizer(tapgesture)
func hidekeyboard(sender: uitapgesturerecognizer) {
self.searchbar1.resignfirstresponder()
}
用例四、滚动tableview隐藏func scrollviewdidscroll(scrollview: uiscrollview) {
self.searchbar1.resignfirstresponder()
}
用例五、通过键盘通知事件在其上方添加按钮
override func viewwillappear(animated: bool) {
super.viewwillappear(animated)
//添加键盘弹出通知
nsnotificationcenter.defaultcenter().addobserver(self, selector: selector("keyboarddidshow:"), name: uikeyboarddidshownotification, object: nil)
//添加键盘收起同志
nsnotificationcenter.defaultcenter().addobserver(self, selector: selector("keyboardwillhide:"), name: uikeyboardwillhidenotification, object: nil)
}
override func viewdiddisappear(animated: bool) {
//取消通知
nsnotificationcenter.defaultcenter().removeobserver(self, name: uikeyboarddidshownotification, object: nil)
nsnotificationcenter.defaultcenter().removeobserver(self, name: uikeyboardwillhidenotification, object: nil)
}
func keyboarddidshow(notification:nsnotification) {
let keyboardbounds = (notification.userinfo![uikeyboardframeenduserinfokey] as! nsvalue).cgrectvalue()
let deltay = keyboardbounds.size.height
let frame_height = self.view.frame.size.height
let butheight = frame_height - deltay - 40
let width = self.view.frame.size.width
let cancalbutton = uibutton(frame: cgrectmake(0,butheight,width/2,40))
cancalbutton.settitle("取消", forstate:uicontrolstate.normal)
cancalbutton.settitlecolor(uicolor.graycolor(), forstate: uicontrolstate.normal)
cancalbutton.backgroundcolor = uicolor(red: 238/255, green: 238/255, blue: 238/255, alpha: 1)
cancalbutton.addtarget(self, action: "hidekeyboard", forcontrolevents: uicontrolevents.touchupinside)
cancalbutton.tag = 9999991
self.view.addsubview(cancalbutton)
let completeditbutton = uibutton(frame: cgrectmake(width/2,butheight,width/2,40))
completeditbutton.settitle("完成", forstate:uicontrolstate.normal)
completeditbutton.settitlecolor(uicolor.whitecolor(), forstate: uicontrolstate.normal)
completeditbutton.backgroundcolor = uicolor.darkgraycolor()
completeditbutton.addtarget(self, action: "completekeyboard", forcontrolevents: uicontrolevents.touchupinside)
completeditbutton.tag = 9999992
self.view.addsubview(completeditbutton)
}
func keyboardwillhide(notification:nsnotification) {
if self.view.viewwithtag(9999991) != nil {
let btncancal = self.view.viewwithtag(9999991) as! uibutton
let btncomplete = self.view.viewwithtag(9999992) as! uibutton
btncancal.removefromsuperview()
btncomplete.removefromsuperview()
}
}
热门的关键词是否有竞争的必要你真的知道404页面怎么设置吗?告诉你做广州定制网站建设的几个理由济南网站建设-响应式网页主流技术从哪些方面做,能提升用户体验性公司有域名怎么做网站?怎么推广网站才能为企业带来潜在用户光纤在数据中心网络中的应用:前景如何?