十年專注于品牌網站建設 十余年專注于網站建設_小程序開發_APP開發,低調、敢創新、有情懷!
      南昌百恒網絡微信公眾號 掃一掃關注
      小程序
      tel-icon全國服務熱線:400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡微信小程序

      百恒網絡

      南昌百恒網絡

      TextField和TextView控件中如何關閉鍵盤?

      百恒網絡 2017-09-28 6159

      在ios開發控件中,TextField和TextView與Label一樣,也是文本類控件,是可以編輯文本內容的。在控件內容編輯方面,三者都可以通過代碼、雙擊控件和屬性檢查器中的Text屬性來實現,但是TextField和 TextView比Label多了一個鍵盤的使用。一旦TextField和TextView等控件處于編輯狀態,系統就會智能地彈出鍵盤,而不需要做任何額外的操作。但是,關閉鍵盤就不像打開鍵盤這樣順利了,我們需要用代碼去實現。 那么在TextField和TextView控件中如何關閉鍵盤?下面南昌APP制作開發公司-百恒網絡就來為大家介紹一下:

      在介紹關閉鍵盤的方法之前,我們先了解鍵盤不能自動關閉的原因。當TextField或TextView處于編輯狀態時,這些控件變成了“第一響應者”。要關閉鍵盤,就要放棄“第一響應者”的身份。在iOS中,事件沿著響應者鏈從一個響應者傳到下一個響應者,如果其中一個響應者沒有對事件做出響應,那么該事件會重新向下傳遞。

      顧名思義,“第一響應者”是響應者鏈中的第一個,不同的控件成為“第一響應者”之后的“表現”不太一致。TextField和TextView等輸入類型的控件會出現鍵盤,而我們只有讓這些控件放棄它們的“第一響應者”身份, 鍵盤才會關閉。

      要想放棄“第一響應者”身份,需要調用UIResponder類中的resignFirstResponder方法,此方法一般在點擊 鍵盤的return鍵或者是背景視圖時觸發,百恒網絡為大家介紹一個采用點擊return鍵關閉鍵盤的方式。要實現這個操作,可以利用 TextField和TextView的委托協議實現。相關的實現代碼是在ViewController文件中,具體如下所示:

      class ViewController: UIViewController, UITextFieldDelegate, UITextViewDelegate {

      override func viewDidLoad() {

      super.viewDidLoad()

      }

      override func didReceiveMemoryWarning() {

      super.didReceiveMemoryWarning()

      }

      //通過委托實現放棄第一響應者

      //UITextField委托方法

      func textFieldShouldReturn(textField: UITextField) -> Bool { textField.resignFirstResponder() ①

      return true

      }

      /通過委托實現放棄第一響應者

      //UITextView委托方法

      func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {

      if (text == "n") {

      textView.resignFirstResponder()

      return false

      }

      return true

      }

      }

      @implementation ViewController

      //通過委托來放棄“第一響應者”

      #pragma mark - UITextField Delegate Method

      - (BOOL)textFieldShouldReturn:(UITextField *)textField

      {

      [textField resignFirstResponder]; ①

      return YES;

      }

      //通過委托來放棄“第一響應者”

      #pragma mark - UITextView Delegate Method

      -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:

      (NSRange)range replacementText:(NSString *)text

      {

      if([text isEqualToString:@"n"]) {

      [textView resignFirstResponder];

      return NO;

      }

      return YES;

      }

      @end

      在上述代碼中,textFieldShouldReturn:方法是UITextFieldDelegate委托協議中定義的方法,在用戶點擊鍵 盤時調用,第①行代碼用于關閉鍵盤。與此類似,textView:shouldChangeTextInRange:replacementText:是由 UITextViewDelegate委托協議提供的方法,它也是在用戶點擊鍵盤時被調用。

      另外,如果界面中有很多控件,或者控件的位置比較靠近屏幕下方,控件就很可能會被彈出的鍵盤擋住,此時可以添加UIScrollView控件來解決。

      關于在TextField和TextView控件中關閉鍵盤的方法就已經講完了,如果大家還有哪些不太明白的地方可隨時來電和我們聯系,百恒專業為您講解。此外,本公司專業為您提供南昌APP開發、網站設計、微信開發、網站推廣等服務,如有需要,歡迎大家來電咨詢,洽談合作!


      400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡小程序

      歡迎您的光顧,我們將竭誠為您服務×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      免费观看国产精品| 少妇亚洲免费精品| 久久精品国产亚洲精品2020 | 极品精品国产超清自在线观看| 日韩插啊免费视频在线观看| 国产精品成人国产乱| 国产成人精品综合网站| 亚洲αv在线精品糸列| 亚洲精品国产品国语在线| 日韩中文字幕在线视频| 麻豆精品国产免费观看 | 无码精品A∨在线观看| 久久国产乱子伦精品免费强| 国产在线无码精品电影网| 久久精品夜色噜噜亚洲A∨| 日韩亚洲不卡在线视频中文字幕在线观看 | 99久久er这里只有精品18| 久久国产视频精品| 久久精品国产99国产精品澳门| 99久久国产宗和精品1上映| 中文字幕精品无码一区二区| 2022年国产精品久久久久 | 国产A∨国片精品一区二区| 日韩夜夜高潮夜夜爽无码| 精品一区二区三区四区| 国内大量偷窥精品视频| 99精品福利国产在线导航| 91精品国产9l久久久久| 91麻豆精品国产自产在线观看亚洲| 国产精品丝袜久久久久久不卡| 国产精品小视频免费无限app| 九九久久精品国产AV片国产| 国产精品免费久久久久久久久 | 久久se精品一区二区影院 | 中文字幕在线亚洲精品| 日韩制服国产精品一区| 久久久久亚洲精品男人的天堂| 国产久爱免费精品视频| heyzo亚洲精品日韩| 国产精品理论片在线观看| 中文字幕一区精品|