欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

總結(jié)IOS關(guān)閉鍵盤(pán)/退出鍵盤(pán)的五種方式

 更新時(shí)間:2016年08月22日 10:02:12   投稿:daisy  
IOS開(kāi)發(fā)中經(jīng)常要用到輸入框,默認(rèn)情況下點(diǎn)擊輸入框就會(huì)彈出鍵盤(pán),但是必須要實(shí)現(xiàn)輸入框return的委托方法才能取消鍵盤(pán)的顯示,對(duì)于用戶體驗(yàn)來(lái)說(shuō)很不友好,我們可以實(shí)現(xiàn)例如點(diǎn)擊鍵盤(pán)以外的空白區(qū)域來(lái)將鍵盤(pán)關(guān)閉的功能,以下是我總結(jié)出的幾種關(guān)閉鍵盤(pán)的方法。

話不多說(shuō),接下來(lái)就是幾種實(shí)現(xiàn)方式:

1,點(diǎn)擊編輯區(qū)以外的地方(UIView)

這是一種很直覺(jué)的方法,當(dāng)不再需要使用虛擬鍵盤(pán)時(shí),只要點(diǎn)擊虛擬鍵盤(pán)和編輯區(qū)域外的地方,就可以將鍵盤(pán)收起,下面程式碼是在 UIView 中內(nèi)建的觸碰事件方法函式,您可以參考 Touch Panel / 觸碰螢?zāi)?/ 壓力感應(yīng)器的基本使用方式一文,找到更多關(guān)于觸碰事件的方法函式。

– (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if (![myTextView isExclusiveTouch]) {
[myTextView resignFirstResponder];
}
}

如果要使用此方式請(qǐng)務(wù)必記得,你操作畫(huà)面的 Custom Class 一定要是 UIView 才行。

畫(huà)面的 Custom Class 為 UIView

2. 點(diǎn)擊編輯區(qū)域以外的地方(UIControl)

收起虛擬鍵盤(pán)的方式與前一種相同,但是如果你的觸碰事件里已經(jīng)且寫(xiě)滿了程式碼,那么就可以考慮使用,UIControl 的 Touch Up Inside 事件來(lái)收起鍵盤(pán),方法是將以下程式碼與 UIControl 的 Touch Up Inside 事件連結(jié)即可。

– (IBAction)dismissKeyboard:(id)sender {
[myTextView resignFirstResponder];
}

如果要使用此方式請(qǐng)務(wù)必記得,你操作畫(huà)面的 Custom Class 一定要是 UIControl 才行。
畫(huà)面的 Custom Class 為 UIControl

將收起鍵盤(pán)的方法與 UIControl 事件連結(jié)

3. 使用制作收起鍵盤(pán)的按鈕

當(dāng)沒(méi)有編輯區(qū)域以外的地方可供點(diǎn)擊來(lái)收起鍵盤(pán),自己制作一個(gè)按鈕來(lái)收起目前的虛擬鍵盤(pán),也是一個(gè)不錯(cuò)的方法,由于按鈕必須在虛擬鍵盤(pán)出現(xiàn)才能顯示于畫(huà)面上,因此必須借用 NSNotificationCenter 來(lái)幫助我們判斷目前鍵盤(pán)的狀態(tài)。
首先在 viewDidLoad: 事件中,向 NSNotificationCenter 進(jìn)行註冊(cè),告訴 NSNotificationCenter 我們的 doneButtonshow: 方法函式。

– (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (doneButtonshow:) name: UIKeyboardDidShowNotification object:nil];
}

現(xiàn)在每當(dāng)虛擬鍵盤(pán)出現(xiàn)時(shí),就會(huì)自動(dòng)呼叫我們自定義的 doneButtonshow: 方法函式,接下來(lái)只要在該方法函式里定義按鈕出現(xiàn)的方法即可。

-(void) doneButtonshow: (NSNotification *)notification {
doneButton = [UIButton buttonWithType: UIButtonTypeRoundedRect];
doneButton.frame = CGRectMake(0, 228, 70, 35);
[doneButton setTitle:@”完成編輯” forState: UIControlStateNormal];
[doneButton addTarget: self action:@selector(hideKeyboard) forControlEvents: UIControlEventTouchUpInside];

[self.view addSubview:doneButton];
}

最后是實(shí)作按鈕按下去時(shí)的 hideKeyboard: 方法函式,務(wù)必記得要在函式中移除該按鈕。

-(void) hideKeyboard {
[doneButton removeFromSuperview];
[myTextView resignFirstResponder];

}

4. 使用判斷輸入字元

如果要使用輸入特定字元(例如 return 換行字元)來(lái)收起鍵盤(pán),必須先在類別內(nèi)的 @interface 區(qū)段採(cǎi)用 協(xié)定,您可以參考 Protocol 協(xié)定的使用方式一文,獲得更多關(guān)于協(xié)定的資訊。

在采用 協(xié)定之后,接著實(shí)作出協(xié)定內(nèi)的 textView:shouldChangeTextInRange:replacementText:方法函式,此方法函式會(huì)在字元輸入時(shí)觸發(fā),而回傳的 BOOL 值則代表該字元是否要作用,下列程式碼就是在此方法函式中,使用判斷輸入字元的方式來(lái)收起虛擬鍵盤(pán)(判斷字元為 return 換行字元)。

– (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if () {
[myTextView resignFirstResponder];
return NO;
}
return YES;
}

最后別忘記在 viewDidLoad: 事件中,將 UITextView 的代理物件指向自己,這樣程式才能正確找到實(shí)作 協(xié)定方法函式的類別。

– (void)viewDidLoad {
[super viewDidLoad];
myTextView.delegate = self;

}

5. 關(guān)于鍵盤(pán)遮蔽的問(wèn)題

如果您在實(shí)作上有遭遇到鍵盤(pán)遮蔽編輯區(qū)域的問(wèn)題,可以參考使用 Animation 解決小鍵盤(pán)擋住 UITextField 的問(wèn)題一文,透過(guò) Core Graphic 的 Animation 功能,在鍵盤(pán)出現(xiàn)時(shí)同時(shí)移動(dòng)編輯區(qū)域來(lái)解決遮蔽的問(wèn)題。

6. 總結(jié)

這些鍵盤(pán)的問(wèn)題,在平時(shí)的開(kāi)發(fā)過(guò)程中都會(huì)遇到,有時(shí)候不怎么好處理。這篇文章寫(xiě)的很詳細(xì),希望對(duì)大家的開(kāi)發(fā)能有所幫助。

相關(guān)文章

  • iOS仿微博導(dǎo)航欄動(dòng)畫(huà)(CoreGraphics)的實(shí)現(xiàn)方法

    iOS仿微博導(dǎo)航欄動(dòng)畫(huà)(CoreGraphics)的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于iOS仿微博導(dǎo)航欄動(dòng)畫(huà)(CoreGraphics)的實(shí)現(xiàn)方法,文章最后給出了完整的示例代碼,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • IOS 中彈框的實(shí)現(xiàn)方法整理

    IOS 中彈框的實(shí)現(xiàn)方法整理

    這篇文章主要介紹了IOS 中彈框的實(shí)現(xiàn)方法整理的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • iOS文件預(yù)覽分享小技能示例

    iOS文件預(yù)覽分享小技能示例

    這篇文章主要為大家介紹了iOS文件預(yù)覽分享小技能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • iOS利用UIScrollView實(shí)現(xiàn)無(wú)限滾動(dòng)效果

    iOS利用UIScrollView實(shí)現(xiàn)無(wú)限滾動(dòng)效果

    這篇文章主要給大家介紹了iOS如何利用UIScrollView實(shí)現(xiàn)無(wú)限滾動(dòng)的效果,首先需要說(shuō)明的是,文本所講的是一種"笨辦法",但是好理解且容易實(shí)現(xiàn),在圖片不多的時(shí)候用它也無(wú)妨。感興趣的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • iOS 使用AFN上傳視頻到服務(wù)器示例代碼

    iOS 使用AFN上傳視頻到服務(wù)器示例代碼

    本篇文章主要介紹了iOS 使用AFN上傳視頻到服務(wù)器示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • iOS實(shí)現(xiàn)簡(jiǎn)單計(jì)算器小功能

    iOS實(shí)現(xiàn)簡(jiǎn)單計(jì)算器小功能

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • IOS 開(kāi)發(fā)之NSURL基本操作

    IOS 開(kāi)發(fā)之NSURL基本操作

    這篇文章主要介紹了IOS 開(kāi)發(fā)之NSURL基本操作的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • iOS 在線視頻生成GIF圖功能的方法

    iOS 在線視頻生成GIF圖功能的方法

    本篇文章主要介紹了iOS 在線視頻生成GIF圖功能的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • IOS開(kāi)發(fā)之判斷兩個(gè)數(shù)組中數(shù)據(jù)是否相同實(shí)例詳解

    IOS開(kāi)發(fā)之判斷兩個(gè)數(shù)組中數(shù)據(jù)是否相同實(shí)例詳解

    這篇文章主要介紹了IOS開(kāi)發(fā)之判斷兩個(gè)數(shù)組中數(shù)據(jù)是否相同實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • iOS實(shí)現(xiàn)不規(guī)則Button點(diǎn)擊效果實(shí)例代碼

    iOS實(shí)現(xiàn)不規(guī)則Button點(diǎn)擊效果實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于iOS實(shí)現(xiàn)不規(guī)則Button點(diǎn)擊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論