en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

1.19.2011

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

UITextField 提供一個文字框可供使用者輸入,在我們使用 Interface Builder 編輯的時候可以看到許多關於 UITextField 的屬性,但是卻沒有一項屬性是告訴我們在輸入結束按下 Return Key 時小鍵盤要如何收起來,所以在這裡將介紹兩種收起小鍵盤的方法,分別是點擊 Return Key 與點擊 UITextField 以外的背景。(View-based Template)

首先是點擊 Return Key 的部份,先寫下一個回傳 IBAction 的事件,程式碼如下。

- (IBAction)doEditFieldDone:(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 事件。







沒有留言:

張貼留言