• IOS Swift UITableViewcontroller实现点击空白处隐藏键盘


    在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,self.view.bounds.width,height:44))

             self.navigationItem.titleView=searchBar

        }

        

        //点击屏幕空白处退出键盘

        

        func hideKeyBoard() {

          

            self.searchBar.resignFirstResponder()

        }

  • 相关阅读:
    亿级 Web 系统搭建:单机到分布式集群
    机器学习14种常见算法
    Nginx——使用 Nginx 提升网站访问速度【转载+整理】
    全栈开发工程师,就是个神话~【转载+整理】
    谷歌、亚马逊相继宣布屏蔽 Flash 广告,又一个时代行将结束?【转载+整理】
    前端框架现状调查【转载+整理】
    Swift 编程语言【转载+整理】
    如何将 Java 项目转换成 Maven 项目
    Eclipse 4.5.0 离线安装 Veloeclipse 插件
    Java 8 新特性——Lambdas 表达式
  • 原文地址:https://www.cnblogs.com/zzjbk/p/6295771.html
Copyright © 2020-2023  润新知