2011年4月13日 星期三

[轉] UITextField 輸入結束後的收起小鍵盤的方式

from : http://www.furnace.idv.tw
UITextField 提供一個文字框可供使用者輸入,在我們使用 Interface Builder 編輯的時候可以看到許多關於 UITextField 的屬性,但是卻沒有一項屬性是告訴我們在輸入結束按下 Return Key 時小鍵盤要如何收起來,所以在這裡將介紹兩種收起小鍵盤的方法,分別是點擊 Return Key 與點擊 UITextField 以外的背景。(View-based Template)
首先是點擊 Return Key 的部份,先寫下一個回傳 IBAction 的事件,程式碼如下。 - (IBAction)doEditField:(id)sender {  //取消目前是第一回應者(鍵盤消失)  [sender resignFirstResponder]; } 接下來就是在 Interface Builder 中把此函式與對應的事件 Events 連接起來,通常是 Did End On Exit 事件。

另一種方式就是點擊背景收起小鍵盤,一樣寫下一個回傳 IBAction 的事件,不過由於是點擊背景,所以系統並不知道是要收起哪一個 UITextField 所產生的小鍵盤,也就是不知道誰才是目前第一回應者,所以在程式碼內必須指定該 UITextField 而不能使用 Sender。
//點擊背景 - (IBAction)onBackgroungHit:(id)sender  //取消目前是第一回應者(鍵盤消失)  [textField resignFirstResponder]; }

如果要使用地二種方式收起小鍵盤,記得要把 UIView 的 Class 設定成 UIControl,只有 UIControl Class 的控制項才可以觸發動作。

接下來一樣是把此函式與對應的事件 Events 連接起來,通常是 Touch Up Inside 事件。

沒有留言:

張貼留言