swift开发笔记12-点击屏幕 收回键盘
有时界面使用tableview布局, 其中有文本输入框的单元格,当键盘弹出后, 收回键盘很简单就是: 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(长按) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |