IOS 開辟之 - 封閉鍵盤 加入鍵盤 的5種方法
1、點擊編纂區之外的處所(UIView)
2、點擊編纂區域之外的處所(UIControl)
3、應用制造收起鍵盤的按鈕
4、應用斷定輸出字元
5、關於鍵盤掩蔽的成績
1,點擊編纂區之外的處所(UIView)
這是一種很直覺的辦法,當不再須要應用虛擬鍵盤時,只需點擊虛擬鍵盤和編纂區域外的處所,便可以將鍵盤收起,上面程式碼是在 UIView 中內建的觸碰事宜辦法函式,您可以參考 Touch Panel / 觸碰螢幕 / 壓力感應器的根本應用方法一文,找到更多關於觸碰事宜的辦法函式。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { if (![myTextView isExclusiveTouch]) { [myTextView resignFirstResponder]; } }
假如要應用此方法請務必記得,你操作畫面的 Custom Class 必定如果 UIView 才行。
畫面的 Custom Class 為 UIView
2. 點擊編纂區域之外的處所(UIControl)
收起虛擬鍵盤的方法與前一種雷同,然則假如你的觸碰事宜裡曾經且寫滿了程式碼,那末便可以斟酌應用,UIControl 的 Touch Up Inside 事宜來收起鍵盤,辦法是將以下程式碼與 UIControl 的 Touch Up Inside 事宜貫穿連接便可。
- (IBAction)dismissKeyboard:(id)sender { [myTextView resignFirstResponder]; }
假如要應用此方法請務必記得,你操作畫面的 Custom Class 必定如果 UIControl 才行。
畫面的 Custom Class 為 UIControl
將收起鍵盤的辦法與 UIControl 事宜貫穿連接
3. 應用制造收起鍵盤的按鈕
當沒有編纂區域之外的處所可供點擊來收起鍵盤,本身制造一個按鈕來收起今朝的虛擬鍵盤,也是一個不錯的辦法,因為按鈕必需在虛擬鍵盤湧現能力顯示於畫面上,是以必需借用 NSNotificationCenter 來贊助我們斷定今朝鍵盤的狀況。
起首在 viewDidLoad: 事宜中,向 NSNotificationCenter 停止註冊,告知 NSNotificationCenter 我們的 doneButtonshow: 辦法函式。
- (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (doneButtonshow:) name: UIKeyboardDidShowNotification object:nil]; }
如今每當虛擬鍵盤湧現時,就會主動呼喚我們自界說的 doneButtonshow: 辦法函式,接上去只需在該辦法函式裡界說按鈕湧現的辦法便可。
-(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]; }
最初是實作按鈕按下去時的 hideKeyboard: 辦法函式,務必記得要在函式中移除該按鈕。
-(void) hideKeyboard { [doneButton removeFromSuperview]; [myTextView resignFirstResponder]; }
4. 應用斷定輸出字元
假如要應用輸出特定字元(例如 return 換行字元)來收起鍵盤,必需先在種別內的 @interface 區段採用 協議,您可以參考 Protocol 協議的應用方法一文,取得更多關於協議的資訊。
在采取 協議以後,接實在作出協議內的 textView:shouldChangeTextInRange:replacementText:辦法函式,此辦法函式會在字元輸出時觸發,而回傳的 BOOL 值則代表該字元能否要感化,以下程式碼就是在此辦法函式中,應用斷定輸出字元的方法來收起虛擬鍵盤(斷定字元為 return 換行字元)。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if ([text isEqualToString:@"\n"]) { [myTextView resignFirstResponder]; return NO; } return YES; }
最初別忘卻在 viewDidLoad: 事宜中,將 UITextView 的署理物件指向本身,如許程式能力准確找到實作 協議辦法函式的種別。
- (void)viewDidLoad { [super viewDidLoad]; myTextView.delegate = self; }
5. 關於鍵盤掩蔽的成績
假如您在實作上有遭受到鍵盤掩蔽編纂區域的成績,可以參考應用 Animation 處理小鍵盤蓋住 UITextField 的成績一文,透過 Core Graphic 的 Animation 功效,在鍵盤湧現時同時挪動編纂區域來處理掩蔽的成績。
以上就是對IOS封閉鍵盤 加入鍵盤 5種方法的材料整頓,感謝年夜家對本站的支撐!
【iOS 開辟之 - 封閉鍵盤 加入鍵盤 的5種方法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!