IOS TextFiled 와 TextView 키보드 의 걷 기 및 처리 키보드 가리기

3733 단어 IOSTextFiledTextView
IOS TextFiled 와 TextView 키보드 의 걷 기 및 처리 키보드 가리기
  iOS 개발 에서 UITextFiled 와 UITextView 는 흔히 볼 수 있 는 두 가지 컨트롤 입 니 다.이 두 컨트롤 을 설정 한 후 텍스트 입력 영역 을 클릭 하면 시스템 에서 자동 으로 키보드 가 팝 업 됩 니 다.하지만 키 보드 를 어떻게 걷 고 키 보드 를 어디서 걷 는 지,아이 폰 4 에서 키보드 가 팝 업 된 후 입력 상 자 를 가 리 는 방법 은 무엇 입 니까?
이 글 은 모 두 를 이 끌 고 해결 할 것 이다.
1>다른 공백 영역 을 클릭 하여 키 보드 를 접는다
2>키보드 오른쪽 하단 버튼 을 눌 러 키보드 접 기
3>키보드 차단 문제 처리
1.다른 공백 구역 을 클릭 하여 키 보드 를 접 습 니 다.

- (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:@"
"]) { [self.workLogTextView resignFirstResponder]; return NO; } return YES; }
메모:textView/textFiled 의 대 리 를 지 켜 야 합 니 다.코드 를 바 꾸 는 것 은 textView 에이전트 방법 입 니 다.실제 사용 하 는 것 이 textFiled 라면 textFiled 의 이런 방법 만 사용 하면 됩 니 다.
3.키보드 차단 문제 처리

#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; 
} 

메모:UIScrollView Delegate 와 textView/textFiled 의 대 리 를 지 켜 야 합 니 다.이 페이지 의 부모 보기 가 UIScrollView 여야 키보드 가 꺼 질 때 페이지 가 위로 이동 하고 키 보드 를 접 을 때 페이지 가 아래로 이동 할 수 있 습 니 다.코드 에 있 는 self.Back ScrollView 는 해당 하 는 부모 보기 입 니 다.사용 할 때 교체 하 십시오.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기