iOS UITextField的returnkey點擊事件


 


一、隱藏自身軟鍵盤
  當對於有多個UITextField控件都想通過點擊“Return”來隱藏自身軟鍵盤的情況,這時的最好辦法是使用Did End on Exit事件。在點擊軟鍵盤右下角的“Return”按鈕后,會觸發該事件。
  該事件有一個sender參數表示當前文本框,這樣便可以編寫一個通用的事件處理方法(.m文件)——
    - (IBAction)TextField_DidEndOnExit:(id)sender {
    // 隱藏鍵盤.
    [sender resignFirstResponder];
    }


  然后在.h文件中填寫該方法的聲明——
    - (IBAction)TextField_DidEndOnExit:(id)sender;


  回到storyboard,並按command+option+enter打開輔助窗口,使輔助窗口顯示.h文件。
  選中一個UITextField控件,點擊鼠標右鍵彈出面板,鼠標左鍵按住Did End on Exit事件旁邊的圓圈,然后拖曳到右側.h文件的TextField_DidEndOnExit方法上,便會建立好事件連接。
  隨后按照同樣的做法,將其他UITextField控件的Did End on Exit事件也連接到TextField_DidEndOnExit方法。
  運行一下,可發現每個文本框的軟鍵盤都可以通過點擊“Return”來隱藏了。

 

 

二、點擊Return自動轉到下個文本框
  當頁面中有很多個文本框時,如果每次都需要點文本框激活軟鍵盤、輸入后點擊Return隱藏軟鍵盤、再點擊下一個文本框……這樣操作起來太繁瑣了。
  於是我們希望能夠實現點擊Return時能夠自動轉到下一個文本框。尤其是對於最后一個文本框,希望能夠在點擊Return時執行下一步操作。
  例如對於登錄頁面。它上面有 賬號文本框(nameTextField)、密碼文本框(passTextField)、登錄按鈕(loginButton)。
  我們希望——點擊賬號文本框軟鍵盤的Return時跳轉到密碼文本框,點擊密碼文本框軟鍵盤的Return時執行登錄。
  因為這兩個文本框的功能不同,不能像上一節那樣寫一個TextField_DidEndOnExit做統一處理,而應該分別建立各自的事件處理方法。
  回到storyboard,右擊賬號文本框(nameTextField)彈出面板,按住Did End on Exit事件旁邊的圓圈,

 

  然后拖曳到右側.h文件的空白地方,此時會彈出一個對話框給方法命名。輸入名稱(nameTextField_DidEndOnExit)后回車確定,便自動生成了該事件方法。
  隨后按照同樣的做法,為密碼文本框(passTextField)的Did End on Exit事件連接方法(passTextField_DidEndOnExit)。


  來到.m文件,填寫具體代碼——
    - (IBAction)nameTextField_DidEndOnExit:(id)sender {
    // 將焦點移至下一個文本框.
    [self.passTextField becomeFirstResponder];
    }

    - (IBAction)passTextField_DidEndOnExit:(id)sender {
    // 隱藏鍵盤.
    [sender resignFirstResponder];
    // 觸發登陸按鈕的點擊事件.
    [self.loginButton sendActionsForControlEvents:UIControlEventTouchUpInside];
    }


  對於賬號文本框轉密碼文本框,不需要隱藏軟鍵盤,只需要調用becomeFirstResponder激活新的文本框就行了。
  對於密碼文本框Return后執行登錄。因為不再需要顯示軟鍵盤,所以還是得調用resignFirstResponder隱藏軟鍵盤,然后觸發登錄按鈕(loginButton)的UIControlEventTouchUpInside事件進行登錄。
  運行一下,可發現已經達到我們希望的效果了。點擊賬號文本框軟鍵盤的Return時跳轉到密碼文本框,點擊密碼文本框軟鍵盤的Return時執行登錄。
  怎么都是“Return”,轉換文本框與執行登錄明明是不同的功能?
  於是將賬號文本框的Return Key屬性設為“Next”,將密碼文本框的Return Key屬性設為“Done”,使界面與功能一致。

 

 

三、輕觸背景隱藏軟鍵盤
  只能通過Return關閉軟鍵盤太不靈活了,應該提供輕觸背景隱藏軟鍵盤的功能。
  在storyboard,點擊背景View,將它的Custom Class設置為UIControl,這樣才會出現Touch Down事件。
  右擊背景View彈出面板,按住Touch Down事件旁邊的圓圈,然后拖曳到右側.h文件的空白地方建立該事件的處理方法。
  來到.m文件,填寫具體代碼——
    - (IBAction)View_TouchDown:(id)sender {
      // 發送resignFirstResponder.

      [self.textField resignFirstResponder];

    }  

  


 

初學時復制的文章,忘了文章的出處,請原創作者原諒

廣大喵 Ficow Shen


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM