日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...

發(fā)布時(shí)間:2025/3/13 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:zyl910

  關(guān)于隱藏軟鍵盤,網(wǎng)上的辦法良莠不齊,大多是通過實(shí)現(xiàn)UITextFieldDelegate來隱藏軟鍵盤,該方法代碼較多,且在文本框很多的時(shí)不好處理。我經(jīng)過搜索與摸索,找到了最佳的處理辦法。

一、隱藏自身軟鍵盤

  當(dāng)對(duì)于有多個(gè)UITextField控件都想通過點(diǎn)擊“Return”來隱藏自身軟鍵盤的情況,這時(shí)的最好辦法是使用Did End on Exit事件。在點(diǎn)擊軟鍵盤右下角的“Return”按鈕后,會(huì)觸發(fā)該事件。
  該事件有一個(gè)sender參數(shù)表示當(dāng)前文本框,這樣便可以編寫一個(gè)通用的事件處理方法(.m文件)——

- (IBAction)TextField_DidEndOnExit:(id)sender {// 隱藏鍵盤. [sender resignFirstResponder]; }

?

  然后在.h文件中填寫該方法的聲明——

- (IBAction)TextField_DidEndOnExit:(id)sender;

?

  回到storyboard,并按command+option+enter打開輔助窗口,使輔助窗口顯示.h文件。
  選中一個(gè)UITextField控件,點(diǎn)擊鼠標(biāo)右鍵彈出面板,鼠標(biāo)左鍵按住Did End on Exit事件旁邊的圓圈,然后拖曳到右側(cè).h文件的TextField_DidEndOnExit方法上,便會(huì)建立好事件連接。
  隨后按照同樣的做法,將其他UITextField控件的Did End on Exit事件也連接到TextField_DidEndOnExit方法。

  運(yùn)行一下,可發(fā)現(xiàn)每個(gè)文本框的軟鍵盤都可以通過點(diǎn)擊“Return”來隱藏了。


二、點(diǎn)擊Return自動(dòng)轉(zhuǎn)到下個(gè)文本框

  當(dāng)頁面中有很多個(gè)文本框時(shí),如果每次都需要點(diǎn)文本框激活軟鍵盤、輸入后點(diǎn)擊Return隱藏軟鍵盤、再點(diǎn)擊下一個(gè)文本框……這樣操作起來太繁瑣了。
  于是我們希望能夠?qū)崿F(xiàn)點(diǎn)擊Return時(shí)能夠自動(dòng)轉(zhuǎn)到下一個(gè)文本框。尤其是對(duì)于最后一個(gè)文本框,希望能夠在點(diǎn)擊Return時(shí)執(zhí)行下一步操作。

  例如對(duì)于登錄頁面。它上面有 賬號(hào)文本框(nameTextField)、密碼文本框(passTextField)、登錄按鈕(loginButton)。
  我們希望——點(diǎn)擊賬號(hào)文本框軟鍵盤的Return時(shí)跳轉(zhuǎn)到密碼文本框,點(diǎn)擊密碼文本框軟鍵盤的Return時(shí)執(zhí)行登錄。
  因?yàn)檫@兩個(gè)文本框的功能不同,不能像上一節(jié)那樣寫一個(gè)TextField_DidEndOnExit做統(tǒng)一處理,而應(yīng)該分別建立各自的事件處理方法。

  回到storyboard,右擊賬號(hào)文本框(nameTextField)彈出面板,按住Did End on Exit事件旁邊的圓圈,然后拖曳到右側(cè).h文件的空白地方,此時(shí)會(huì)彈出一個(gè)對(duì)話框給方法命名。輸入名稱(nameTextField_DidEndOnExit)后回車確定,便自動(dòng)生成了該事件方法。
  隨后按照同樣的做法,為密碼文本框(passTextField)的Did End on Exit事件連接方法(passTextField_DidEndOnExit)。
  來到.m文件,填寫具體代碼——

- (IBAction)nameTextField_DidEndOnExit:(id)sender {// 將焦點(diǎn)移至下一個(gè)文本框. [self.passTextField becomeFirstResponder]; }- (IBAction)passTextField_DidEndOnExit:(id)sender {// 隱藏鍵盤. [sender resignFirstResponder];// 觸發(fā)登陸按鈕的點(diǎn)擊事件. [self.loginButton sendActionsForControlEvents:UIControlEventTouchUpInside]; }

?

  對(duì)于賬號(hào)文本框轉(zhuǎn)密碼文本框,不需要隱藏軟鍵盤,只需要調(diào)用becomeFirstResponder激活新的文本框就行了。
  對(duì)于密碼文本框Return后執(zhí)行登錄。因?yàn)椴辉傩枰@示軟鍵盤,所以還是得調(diào)用resignFirstResponder隱藏軟鍵盤,然后觸發(fā)登錄按鈕(loginButton)的UIControlEventTouchUpInside事件進(jìn)行登錄。

  運(yùn)行一下,可發(fā)現(xiàn)已經(jīng)達(dá)到我們希望的效果了。點(diǎn)擊賬號(hào)文本框軟鍵盤的Return時(shí)跳轉(zhuǎn)到密碼文本框,點(diǎn)擊密碼文本框軟鍵盤的Return時(shí)執(zhí)行登錄。
  怎么都是“Return”,轉(zhuǎn)換文本框與執(zhí)行登錄明明是不同的功能?
  于是將賬號(hào)文本框的Return Key屬性設(shè)為“Next”,將密碼文本框的Return Key屬性設(shè)為“Done”,使界面與功能一致。


三、輕觸背景隱藏軟鍵盤

  只能通過Return關(guān)閉軟鍵盤太不靈活了,應(yīng)該提供輕觸背景隱藏軟鍵盤的功能。

  在storyboard,點(diǎn)擊背景View,將它的Custom Class設(shè)置為UIControl,這樣才會(huì)出現(xiàn)Touch Down事件。
  右擊背景View彈出面板,按住Touch Down事件旁邊的圓圈,然后拖曳到右側(cè).h文件的空白地方建立該事件的處理方法。
  來到.m文件,填寫具體代碼——

- (IBAction)View_TouchDown:(id)sender {// 發(fā)送resignFirstResponder. [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/zyl910/archive/2013/03/29/ios_textfield_keyboard.html

總結(jié)

以上是生活随笔為你收集整理的[iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。