當(dāng)前位置:
首頁 >
键盘相关处理
發(fā)布時間:2025/7/14
56
豆豆
實(shí)際開發(fā)中在退出當(dāng)前界面前,要將彈起的鍵盤收起
- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated];// 視圖退出編輯狀態(tài)(收起鍵盤)[self.view endEditing:YES];} 復(fù)制代碼如果當(dāng)前控制器是TableViewController時,就不能這么寫了
- (void)viewWillDisappear:(BOOL)animated {[super viewWillDisappear:animated];// 關(guān)閉第一響應(yīng)者(收起鍵盤)[self.textField resignFirstResponder]; } 復(fù)制代碼在實(shí)際開發(fā)中有時候需要對 文本輸入框UITextfiled 進(jìn)行一些限制. 比如說在輸入金額的時候我們希望只能輸入最多兩位小數(shù).應(yīng)該怎么辦呢?UITextfiled 有個代理方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text 復(fù)制代碼官方的注釋是** return NO **的時候是不能改變文字的.那么我們就在這個方法里做手腳.為了少做一些判斷.我們可以先限制調(diào)出的鍵盤類型為UIKeyboardTypeDecimalPad.
UIKeyboardTypeDecimalPad// 輸入金額 限制兩個小數(shù)
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {if ([textField.text containsString:@"."]) {if ([string isEqualToString:@"."]) return NO;NSRange rangeOfPoint = [textField.text rangeOfString:@"."];if (range.location > rangeOfPoint.location + 2) return NO;}return YES;} 復(fù)制代碼附錄: 鍵盤樣式:
UIKeyboardTypeDefault UIKeyboardTypeASCIICapable UIKeyboardTypeNumbersAndPunctuation UIKeyboardTypeURL UIKeyboardTypeNumberPad UIKeyboardTypePhonePad電話號碼鍵盤 UIKeyboardTypeNamePhonePad UIKeyboardTypeEmailAddress UIKeyboardTypeDecimalPad金額鍵盤 UIKeyboardTypeTwitter UIKeyboardTypeWebSearch UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable總結(jié)
- 上一篇: 移动端的视口
- 下一篇: ArcEngine中IFeatureCl