国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

IOS TextFiled與TextView 鍵盤的收起以及處理鍵盤遮擋

2019-10-21 18:49:16
字體:
來源:轉載
供稿:網友

IOS TextFiled與TextView 鍵盤的收起以及處理鍵盤遮擋

  在iOS開發中,UITextFiled和UITextView是很常見的兩個控件,當我們設置好這兩個控件后,點擊文字輸入區域,系統會自動彈出鍵盤,但是如何收起鍵盤、點擊哪里收起鍵盤,以及在iPhone4中鍵盤彈出后遮擋輸入框怎么辦呢?

這篇文章將帶領大家解決:

1》點擊其他空白區域收起鍵盤
2》點擊鍵盤右下角的鍵收起鍵盤
3》處理鍵盤遮擋問題

一,點擊其他空白區域收起鍵盤

- (void)viewDidLoad {   [super viewDidLoad];    [self setUpForDismissKeyboard];   } 
#pragma mark - 回收任何空白區域鍵盤事件 - (void)setUpForDismissKeyboard {   NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];   UITapGestureRecognizer *singleTapGR =   [[UITapGestureRecognizer alloc] initWithTarget:self                       action:@selector(tapAnywhereToDismissKeyboard:)];   NSOperationQueue *mainQuene =[NSOperationQueue mainQueue];   [nc addObserverForName:UIKeyboardWillShowNotification           object:nil            queue:mainQuene         usingBlock:^(NSNotification *note){           [self.view addGestureRecognizer:singleTapGR];         }];   [nc addObserverForName:UIKeyboardWillHideNotification           object:nil            queue:mainQuene         usingBlock:^(NSNotification *note){           [self.view removeGestureRecognizer:singleTapGR];         }]; }  - (void)tapAnywhereToDismissKeyboard:(UIGestureRecognizer *)gestureRecognizer {   //此method會將self.view里所有的subview的first responder都resign掉   [self.view endEditing:YES]; } 

 二,點擊鍵盤右下角的鍵收起鍵盤

#pragma mark - TextView 代理方法  -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {   if ([text isEqualToString:@"/n"]) {          [self.workLogTextView resignFirstResponder];          return NO;   }      return YES; } 

注意:需要遵守textView/textFiled的代理。改代碼是textView代理方法,若實際用到的是textFiled,只需調用textFiled的該類方法即可。

三,處理鍵盤遮擋問題

#pragma mark 鍵盤遮擋 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView {   if (self.userInfo.isPhone4) {     CGFloat offset_y = 0.f;     if (textView.tag == CALL_CONTENT_TEXTFIRLD) {       offset_y = 100.f;     }     CGPoint point = self.BackScrollView.contentOffset;     point = CGPointMake(point.x, offset_y);     [UIView animateWithDuration:0.25 animations:^{       self.BackScrollView.contentOffset = point;     }];   }   return YES; }   - (BOOL)textViewShouldEndEditing:(UITextView *)textView{   if (self.userInfo.isPhone4) {     CGFloat offset_y = 0.f;     if (textView.tag == CALL_CONTENT_TEXTFIRLD) {       offset_y = 100.f;     }     CGPoint point = self.BackScrollView.contentOffset;     point = CGPointMake(point.x, 0);     [UIView animateWithDuration:0.25 animations:^{       self.BackScrollView.contentOffset = point;     }];   }   return YES; } 

注意:需要遵守 UIScrollViewDelegate 和 textView/textFiled的代理。需要該頁面的父視圖是UIScrollView,才能保證彈出鍵盤時頁面向上移動,收起鍵盤時頁面向下移動。代碼中的self.BackScrollView就是對應的父視圖,使用時請替換掉。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三原县| 勃利县| 河源市| 台南县| 松潘县| 云浮市| 广东省| 横山县| 北安市| 文山县| 旺苍县| 巴林右旗| 麻阳| 赤城县| 胶州市| 织金县| 永修县| 建德市| 莎车县| 平南县| 城口县| 车险| 洛宁县| 遂平县| 曲水县| 临夏市| 沽源县| 承德市| 探索| 张家口市| 蕲春县| 钦州市| 龙江县| 南雄市| 印江| 昌平区| 云霄县| 潜山县| 扶余县| 湘潭市| 大理市|