轉:ios關閉鍵盤

在 iOS 程序中當想要在文本框中輸入數據,輕觸文本框會打開鍵盤。對於 iPad 程序,其鍵盤有一個按鈕能夠用來關閉鍵盤,可是 iPhone 程序中的鍵盤卻沒有這樣的按鈕,不過咱們能夠採起一些方法關閉它。例如,咱們能夠實現按下 Rerun (有時也是 Done、Research 等)鍵關閉鍵盤,或者,更人性化的,輕觸背景關閉鍵盤。spa

一、首先講一下按下Return鍵關閉鍵盤。.net

當按下鍵盤的 Return 鍵,會產生一個 Did End On Exit 事件,此時,咱們告訴文本框要放棄控件,因而鍵盤就消失了。code

假設,咱們已經建立了一個 Single View Application ,並打開 ViewController.xib 文件,在 View 上拖上去了三個 Text Field ,而後,咱們把這三個文本框映射到 ViewController.h 中,名稱依次是 firstField、secondField 以及 thirdField 。以下圖:事件

在這個基礎上,實現輕觸 Return 關閉鍵盤,步驟爲:get

(1)在 ViewController.h 中聲明一個方法:it

- (IBAction)textFiledReturnEditing:(id)sender;

 

(2)在 ViewController.m 中實現這個方法:io

-(IBAction)textFiledReturnEditing:(id)sender {
    [sender resignFirstResponder];
}

 

所謂 First Responder 指的就是用戶當前正在與之交互的控件。當用戶使用鍵盤時,First Responder 就是這個鍵盤,resignFirstResponder 方法,顧名思義,就是放棄 First Responder 。class

(3)讓這三個文本框都映射到 textFiledReturnEditing 方法,不過此時的事件應當是 Did End On Exit ,具體操做是:基礎

打開 Assistant Editor  ,左邊打開 ViewController.xib ,右邊打開 ViewController.h ,在 Xcode 最右邊打開 Connector Inspector ,而後在 View 中選擇第一個文本框,在 Connector Inspector 中找到 Did End On Exit ,從它右邊的圓圈中拉出映射線,映射到 ViewController.h 的 textFiledReturnEditing 方法,以下圖:程序

給其餘兩個文本框進行一樣的操做。如今,已經實現了輕觸 Return 鍵關閉鍵盤。

二、下面介紹更人性化的方法,輕觸背景關閉鍵盤。

跟上面的步驟差很少,首先定義一個方法,而後實現這個方法,接下來將指定的控件映射到這個方法,並選擇好所觸發的事件。不一樣的是,此次咱們要選擇的控件不是上邊的文本框,而是視圖 View 自己。

(1)在 ViewController.h 文件中添加方法聲明代碼:

- (IBAction)backgroundTap:(id)sender;

 

(2)在ViewController.m中實現這個方法:

- (IBAction)backgroundTap:(id)sender {
    [firstField resignFirstResponder];
    [secondField resignFirstResponder];
    [thirdField resignFirstResponder];
}

 

須要說明的是,[firstField resignFirstResponder];表示,若是firstField有FirstResponder的話就放棄它,咱們不用先判斷firstField是否有,這條語句徹底正確。

(3)讓 View 映射到這個方法,不過事先,咱們先要改變 View 的類型。

打開xib,選中 View ,打開 Identity Inspector ,在 class 中選擇 UIControl :

(4)打開Assistant Editor ,左邊打開 ViewController.xib ,右邊打開 ViewController.h ,在Xcode最右邊打開 Connector Inspector ,在 ViewController.xib 中選擇 Control ,在 Connector Inspector 中找到 Touch Down ,從它右邊的圓圈中拉出映射線,映射到 ViewController.h 的 backgroundTap 方法,以下圖:

好了,能夠運行下看看效果了:

      

打開鍵盤以後,在背景區域點擊一下,鍵盤就會向下收起來。

相關文章
相關標籤/搜索