欧美亚洲大片-国产免费成人在线视频-国产成人8x人在线视频软件-日韩亚洲欧美中文字幕-97伦伦午夜电影理伦片-亚洲综合精品视频-曰本女人牲交高潮视频-久久久精品欧美-天天干天天操天天碰-精品国产乱码久久久久久1区2区-黄色一级免费片-在线免费欧美-国产成人精品在线视频-精人妻一区二区三区-香蕉视频2020-综合久久99-欧美日韩亚洲国产综合

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

百恒網絡

南昌百恒網絡

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

百恒網絡 2017-09-28 6675

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

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

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

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

class ViewController: UIViewController, UITextFieldDelegate, UITextViewDelegate {

override func viewDidLoad() {

super.viewDidLoad()

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

}

//通過委托實現(xiàn)放棄第一響應者

//UITextField委托方法

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

return true

}

/通過委托實現(xiàn)放棄第一響應者

//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委托協(xié)議中定義的方法,在用戶點擊鍵 盤時調用,第①行代碼用于關閉鍵盤。與此類似,textView:shouldChangeTextInRange:replacementText:是由 UITextViewDelegate委托協(xié)議提供的方法,它也是在用戶點擊鍵盤時被調用。

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

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


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

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

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×
湟中县| 察雅县| 灵寿县| 扶风县| 新沂市| 紫云| 上饶县| 岳池县| 昌图县| 大同市| 扎鲁特旗| 高邑县| 嵩明县| 清镇市| 八宿县| 绥德县| 马山县| 永寿县| 成都市| 汕头市| 安阳市| 上饶市| 灵寿县| 康定县| 海安县| 滦南县| 大方县| 南丹县| 贵港市| 启东市| 于田县| 涟源市| 昌图县| 久治县| 双鸭山市| 灵川县| 虎林市| 伊吾县| 会理县| 苍南县| 定陶县|