有时界面使用tablevIEw布局, 其中有文本输入框的单元格,当键盘d出后, 收回键盘很简单就是:
workcontent.resignFirstResponder()
1、 点击键盘return键返回需要vIEwcontroller实现委托
class VIEwController: UIVIEwController,UITextFIEldDelegate,UITextVIEwDelegate {//此处省略引用声明//通过委托来实现放弃第一响应者 //UITextFIEld Delegate Method func textFIEldShouldReturn(textFIEld: UITextFIEld) -> Bool { textFIEld.resignFirstResponder() return true } //通过委托来实现放弃第一响应者 //UITextVIEw Delegate Method func textVIEw(textVIEw: UITextVIEw,shouldChangeTextInRange range: NSRange,replacementText text: String) -> Bool { if (text == "\n") { textVIEw.resignFirstResponder() return false } return true }}
但是按键到return无法让键盘消失,这是因为你的文本框没有添加委托。
添加委托的方法,右键文本框,把outlets下的+拉到file's owner(一个透视的正方体)上就可以了。
或者在加载事件中添加txtLength.delegate=self;
(添加委托的 *** 作 来自:http://blog.csdn.net/peyfey/article/details/42423617)
2、点击空白收回键盘:
点击UITextFIEld以外的区域,实际是点击了tableVIEw,tableVIEw捕获点击事件,可它不会传递该事件。怎么办呢?
网上有很多方法了,我找到一种简单可用的办法:addGestureRecognizer
class AddDayReportVIEwController: UItableVIEwController { @IBOutlet weak var workcontent: UITextVIEw! overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() //注册点击事件 vIEw.addGestureRecognizer(UITapGestureRecognizer(target: self,action: "handleTap:")) } func handleTap(sender: UITapGestureRecognizer) { if sender.state == .Ended { print("收回键盘") workcontent.resignFirstResponder() } sender.cancelstouchesInVIEw = false }}
亲测可用!!
UIGestureRecognizer类用于手势识别,它的子类有主要有六个分别是:
UITapGestureRecognizer(轻击一下)
UIPinchGestureRecognizer(两指控制的缩放)
UIRotationGestureRecognizer(旋转)
UISwipeGestureRecognizer(滑动,快速移动)
UIPanGestureRecognizer(拖移,慢慢移动)
UILongPressGestureRecognizer(长按)
总结以上是内存溢出为你收集整理的swift开发笔记12-点击屏幕 收回键盘全部内容,希望文章能够帮你解决swift开发笔记12-点击屏幕 收回键盘所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)