首先說下,我寫這些東西的初衷吧.我寫這些東西并不是來顯示自己多流弊,多牛叉,因?yàn)檫@些東西本來就很簡單,很基礎(chǔ)的知識點(diǎn),大家上網(wǎng)百度一下基本都能找到,但是我為何還要寫這些東西呢?一方面是因?yàn)槲耶?dāng)年是菜鳥的時(shí)候,再網(wǎng)上查找資料,確實(shí)能找到很多相關(guān)的資料,但是能看懂的就不多了,自己要慢慢的去扣知識點(diǎn),很累,而且有時(shí)候看完那些大拿們寫的代碼,還是是是而非的感覺,并不是很懂.因此就想自己寫一些簡單的東西,淺顯易懂的,讓初學(xué)者學(xué)起來不那么累.
上篇文章對UITextField的協(xié)議UITextFieldDelegate中方法的作用做了一個簡單的介紹.接下來我簡單的介紹下如何點(diǎn)擊空白處,讓鍵盤退下去.
由于沒用封裝,所以直接在空白工程的AppDelegate.m的方法中開寫.我們首先需要布局一個和屏幕等大的視圖,以這個視圖為根視圖添加其他視圖控件,這樣的話,刪除這個視圖,就可以把它的子視圖也一并刪除.
接下來創(chuàng)建兩個簡單的輸入框同時(shí)需要對兩個輸入框進(jìn)行代理設(shè)置,設(shè)置成所在類為該輸入框的代理,并把這兩個輸入框添加到conView這個視圖上.
然后需要輸入框遵守UITextFieldDelegate協(xié)議,那么問題來了,我們現(xiàn)在要實(shí)現(xiàn)的是點(diǎn)擊空白區(qū)域回收鍵盤,我們只有選中某個輸入框的時(shí)候,鍵盤才會出現(xiàn),那么我們點(diǎn)擊空白區(qū)域來觸發(fā)某個方法,這個方法中寫了讓鍵盤退出的語句,這樣就能是鍵盤退出了.當(dāng)點(diǎn)擊空白區(qū)域會觸發(fā)- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;方法.這時(shí)候我們就需要對選中的輸入框后跳出來的鍵盤回收,我們?nèi)绾沃?我們現(xiàn)在選中了那個輸入框呢?這就需要我們定義一個屬性,用來存放我們當(dāng)前點(diǎn)擊的輸入框?qū)ο?
接下來,我們應(yīng)該用UITextFieldDelegate協(xié)議中的一個方法,來獲取當(dāng)前點(diǎn)擊的輸入框?qū)ο?br>
我們拿到當(dāng)前正在操作的輸入框?qū)ο蠛?那么你點(diǎn)擊空白區(qū)域要觸發(fā)方法,觸發(fā)后,在方法中對當(dāng)前鍵盤進(jìn)行回收.
效果圖如下: