iOS利用響應(yīng)鏈機(jī)制點(diǎn)擊tableview空白處關(guān)閉鍵盤

寫在前面:

? ? 想寫博客的想法很久了,由于懶和不知道寫什么外,擱置了很久才在今天開始下筆寫我的第一篇博客,如果你也是一名iOSer,并且剛好遇到了沒有解決的這樣的需求,剛好我的我的博客給了你解決問題的靈感,請(qǐng)給個(gè)贊哈?? 當(dāng)然如果你有更深的見地或者更好的其他解決的方法,還望不吝賜教哦,大家共同進(jìn)步(∩_∩)

? ? 好了步入正題,相信在項(xiàng)目中大家對(duì)于關(guān)閉鍵盤并不陌生,處理關(guān)閉鍵盤的做法一般分為兩種:1.放棄第一響應(yīng)者身份;2.當(dāng)前視圖結(jié)束編輯。通常情況下只要我們?cè)诤线m的時(shí)機(jī)去做這兩件事的任意一種,都會(huì)很穩(wěn)妥的如我們所愿----關(guān)閉鍵盤。但是,總有那么一些特殊情況使我們不能如意的關(guān)閉鍵盤,比如:在tableviewcell上有一個(gè)textfiled或者textview時(shí),我們想要點(diǎn)擊背部空白關(guān)閉鍵盤時(shí)確不能如愿。現(xiàn)在,我們一步一步的來解決這個(gè)問題,首先我們創(chuàng)建一個(gè)這樣的界面:


? ? 我們?cè)谝c(diǎn)擊屏幕空白處收起鍵盤最常見的處理方法是在剛點(diǎn)擊的方法中放棄第一響應(yīng)者身份或者結(jié)束編輯,如圖


但是運(yùn)行后發(fā)現(xiàn)這個(gè)方法不執(zhí)行,于是我們最常用的而且一用就成功的方法遭遇了tableview這個(gè)刺兒頭就不靈了。按照我們的理解,只要我們與界面有任何交互運(yùn)動(dòng),touchsBegan的方法就一定會(huì)執(zhí)行,但是我們?cè)谶@里打斷點(diǎn)顯示卻是沒有執(zhí)行,這是為什么呢?一般在viewController中實(shí)現(xiàn)這個(gè)方法,點(diǎn)擊背景時(shí),這個(gè)方法就會(huì)執(zhí)行,于是在tableviewController我們也潛移默化的認(rèn)為tableviewController下的tableview也會(huì)執(zhí)行這個(gè)方法,其實(shí)不然,因?yàn)閠ableviewController也是由viewController封裝而成,所以真正執(zhí)行touchsBegan的還是這個(gè)viewController下的view。

? ? 好了,既然這樣不行,那我們就給tableview加個(gè)tap手勢(shì)吧,代碼如下:


? ?然后我們?cè)俅芜\(yùn)行程序看看效果。。。。好嘞,終于鍵盤如愿關(guān)閉了,需求解決,不用加班了,于是收拾書包準(zhǔn)備回家唄。。。可是產(chǎn)品wang的聲音在你即將雙腳跨出辦公室門外的0.0001秒之前將你叫了回來:“怎么點(diǎn)擊cell不能跳轉(zhuǎn)了,還有刪除cell也刪除不了了?” 于是原本欣喜的心情瞬間如一萬頭草泥馬在心頭奔騰而過,回家的愿望破滅了,放下書包繼續(xù)擼代碼。。。。(tap手勢(shì)覆蓋了tableview里面自帶的手勢(shì),于是就不執(zhí)行didselect...的方法)

? ? 現(xiàn)在就利用響應(yīng)鏈機(jī)制來解決這個(gè)問題,事件響應(yīng)鏈機(jī)制我就不在這兒細(xì)說了,官方資料講的很明白了,主要就是查找事件源(調(diào)用hitTest...查找)和反饋給系統(tǒng)處理(調(diào)用.nextResponse),所以現(xiàn)在我們只需在點(diǎn)擊tableview的事件反饋給appdelegate處理之前關(guān)閉鍵盤就可以了,這樣既關(guān)閉了鍵盤,又不會(huì)由于覆蓋tableview封裝的手勢(shì)而導(dǎo)致cell的手勢(shì)操作異常問題。方法步驟如下:

? ? 1.由于我是用storyboard創(chuàng)建的界面,所以先創(chuàng)建一個(gè)繼承自UItableview的類,然后與storyboard里面tableview關(guān)聯(lián)。(純代碼一樣)

? ? 2.在這個(gè)類中實(shí)現(xiàn)hitText...的方法如下所示:


這段代碼的意思就是點(diǎn)擊的是tableview就結(jié)束編輯并且返回tableview本身,這樣就不影響了tableview本身的操作,然后點(diǎn)擊的是tableview的子視圖的時(shí)候就返回子視圖就行了。

? ? 好了,再次運(yùn)行程序,十指飛快的測(cè)試,bingo沒問題,背上書包光年速度飛奔回家!

以上內(nèi)容如有轉(zhuǎn)載請(qǐng)注明出處,同時(shí)歡迎大家多多提出意見,還是那句話,大家共同進(jìn)步,謝謝啦^_^!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評(píng)論 6 538
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,034評(píng)論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,165評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,559評(píng)論 1 325
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,781評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,327評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,084評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,278評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,495評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評(píng)論 1 291
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,010評(píng)論 3 396
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,241評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,156評(píng)論 4 61
  • 在一個(gè)安靜的人身上,可以看到安靜投射出的巨大張力:內(nèi)斂、低調(diào)、溫和、謙遜。這些閃耀著人格光輝的力量,交織著安靜的另...
    iChuck閱讀 700評(píng)論 0 4
  • 溫暖的午后,泡一杯蕎麥茶 麥粒與心情一同沉入杯底 整潔光滑象一層鵝卵石 我將過往的人生,在此刻投進(jìn)茶杯 水色泛黃,...
    穗心說語閱讀 396評(píng)論 0 4
  • 更新:最后提供的所謂“終極”解決方案,之前都是自己的項(xiàng)目在用,分享出來之后,發(fā)現(xiàn)有一些地方還需要改進(jìn)。但是總體思路...
    _奔跑的炸雞閱讀 40,098評(píng)論 124 658