IOS Swift UITableViewcontroller实现点击空白处隐藏键盘
2017-01-18 10:23
696 查看
在ios开发中,为了方便,我们经常使用UITableViewcontroller,比如搜索界面为了方便可能更多的使用UITableViewcontroller,那么问题就来了,当我点击搜索框的时候会弹出一个键盘,我们需要点击空白处就隐藏键盘,这时候大家可能想到的事在UITableViewcontroller中重写touchesBegan方法,但是发现这个方法并没有响应,我猜想可能是被屏蔽了,那我们该怎么做呢?下面我说一下实现思路:
1.自定义一个类继承UITableView然后重新touchesBegan然后写一个代理提供一个隐藏键盘的方法,代码如下:
import UIKit
//搜索时点击空白处隐藏键盘
protocol SearchTableViewDelegate {
func hideKeyBoard()
}
class SearchTableView: UITableView {
var mDelegate:SearchTableViewDelegate!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if mDelegate != nil{
mDelegate.hideKeyBoard()
}
}
}
2.调用
(注意:在调用之前一定要将UITableViewController中的UITableView设置成自己定义的那个UITableView否则不会有效果切记)
import UIKit
//搜索
class SearchTableViewController: UITableViewController,SearchTableViewDelegate{
@IBOutlet var mSearchTableView: SearchTableView!
var searchBar:UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
mSearchTableView.mDelegate=self
addSearchBar()
}
//在导航栏添加搜索框
func addSearchBar() {
self.searchBar = UISearchBar(frame:CGRect(x:0,y:0,width:self.view.bounds.width,height:44))
self.navigationItem.titleView=searchBar
}
//点击屏幕空白处退出键盘
func hideKeyBoard() {
self.searchBar.resignFirstResponder()
}
}
1.自定义一个类继承UITableView然后重新touchesBegan然后写一个代理提供一个隐藏键盘的方法,代码如下:
import UIKit
//搜索时点击空白处隐藏键盘
protocol SearchTableViewDelegate {
func hideKeyBoard()
}
class SearchTableView: UITableView {
var mDelegate:SearchTableViewDelegate!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if mDelegate != nil{
mDelegate.hideKeyBoard()
}
}
}
2.调用
(注意:在调用之前一定要将UITableViewController中的UITableView设置成自己定义的那个UITableView否则不会有效果切记)
import UIKit
//搜索
class SearchTableViewController: UITableViewController,SearchTableViewDelegate{
@IBOutlet var mSearchTableView: SearchTableView!
var searchBar:UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
mSearchTableView.mDelegate=self
addSearchBar()
}
//在导航栏添加搜索框
func addSearchBar() {
self.searchBar = UISearchBar(frame:CGRect(x:0,y:0,width:self.view.bounds.width,height:44))
self.navigationItem.titleView=searchBar
}
//点击屏幕空白处退出键盘
func hideKeyBoard() {
self.searchBar.resignFirstResponder()
}
}
相关文章推荐
- IOS实现点击软键盘的Next/Return按钮或者空白处后自动隐藏键盘
- IOS 点击空白处隐藏键盘的几种方法
- ios学习之 点击屏幕任何地方隐藏键盘实现 目前感觉最好用的
- IOS 点击空白处隐藏键盘的几种方法
- iOS点击空白处隐藏键盘的几种方法
- IOS 点击空白处隐藏键盘的几种方法
- IOS 点击空白处隐藏键盘的几种方法
- IOS 点击空白处隐藏键盘的几种方法
- IOS点击空白处隐藏键盘的几种方法
- IOS 点击空白处隐藏键盘的几种方法
- iOS点击空白处和和return键,回收键盘,隐藏键盘
- IOS 点击空白处隐藏键盘的几种方法
- IOS 点击空白处隐藏键盘的几种方法
- IOS 点击空白处隐藏键盘的几种方法
- ios实现点击空白处关闭键盘
- ios学习之 点击屏幕任何地方隐藏键盘实现 目前感觉最好用的
- ios 点击界面空白处隐藏键盘
- ios学习之 点击屏幕任何地方隐藏键盘实现 目前感觉最好用的
- IOS 点击空白处隐藏键盘的几种方法
- ios开发——点击空白处隐藏键盘的几种方法