iphone隱藏軟鍵盤問題

2022-03-23 13:02:51 字數 2729 閱讀 9341

ios上面對鍵盤的處理很不人性化,所以這些功能都需要自己來實現,

首先是點選return和螢幕隱藏鍵盤

在 ios 程式中當想要在文字框中輸入資料,輕觸文字框會開啟鍵盤。對於 ipad 程式,其鍵盤有乙個按鈕可以用來關閉鍵盤,但是 iphone 程式中的鍵盤卻沒有這樣的按鈕,不過我們可以採取一些方法關閉它。例如,我們可以實現按下 rerun (有時也是 done、research 等)鍵關閉鍵盤,或者,更人性化的,輕觸背景關閉鍵盤。

1、首先講一下按下return鍵關閉鍵盤。

當按下鍵盤的 return 鍵,會產生乙個 did end on exit 事件,此時,我們告訴文字框要放棄控制項,於是鍵盤就消失了。

在這個基礎上,實現輕觸 return 關閉鍵盤,步驟為:

(1)在 viewcontroller.h 中宣告乙個方法:

- (ibaction)textfiledreturnediting:(id)sender;
(2)在 viewcontroller.m 中實現這個方法:

-(ibaction)textfiledreturnediting:(id)sender
所謂 first responder 指的就是使用者當前正在與之互動的控制項。當使用者使用鍵盤時,first responder 就是這個鍵盤,resignfirstresponder 方法,顧名思義,就是放棄 first responder 。

(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 鍵關閉鍵盤。

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

跟上面的步驟差不多,首先定義乙個方法,然後實現這個方法,接下來將指定的控制項對映到這個方法,並選擇好所觸發的事件。不同的是,這次我們要選擇的控制項不是上邊的文字框,而是檢視 view 本身。

(1)在 viewcontroller.h 檔案中新增方法宣告**:

- (ibaction)backgroundtap:(id)sender;
(2)在viewcontroller.m中實現這個方法:

- (ibaction)backgroundtap:(id)sender
需要說明的是,[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 方法,如下圖:

好了,可以執行下看看效果了:

開啟鍵盤之後,在背景區域點選一下,鍵盤就會向下收起來。

然後點評,在網上也有只寫乙個 backgroundtap 函式,然後將所有元件都 resignfirstresponser的方法,即 將元件的事件和螢幕的事件指向同乙個函式。

這兩個方法都是可以用的,但是呢,我更加傾向於使用同乙個函式的方法,原因呢,原因就要牽扯到第二個方面的知識:

解決虛擬鍵盤擋住uitextfield的方法

補充:

-(ibaction)nametextfield_didendonexit:(id)sender 

-(ibaction)passtextfield_didendonexit:(id)sender

隱藏軟鍵盤隨筆

1 軟鍵盤的狀態 隱藏或顯示。一 自動彈出軟鍵盤 timer timer new timer timer.schedule new timertask 2000 二 軟鍵盤 activity中設定 android windowsoftinputmode stateunspecified 預設設定 軟...

android軟鍵盤隱藏總結

1 軟鍵盤的狀態 隱藏或顯示。一 自動彈出軟鍵盤 timer timer new timer timer.schedule new timertask 2000 二 軟鍵盤 activity中設定 android windowsoftinputmode stateunspecified 預設設定 軟...

顯示和隱藏軟鍵盤

1 方法一 如果輸入法在視窗上已經顯示,則隱藏,反之則顯示 inputmethodmanager imm inputmethodmanager getsystemservice context.input method service imm.togglesoftinput 0,inputmetho...