2014-10-30 1 views
0

키보드를 열었을 때 ScrollView 크기를 변경하려면 현재 keyboardWillBeHiddenkeyboardFrameDidChange 메서드에 등록하십시오.iOS - 방법 외에 키보드 알림을 참조하는 방법은 무엇입니까?

if ([textView.text hasSuffix:@"\n"]) { 
    [CATransaction setCompletionBlock:^{[self scrollToCaretInTextView:self.logText animated:NO];}]; 
} else { 
    [self scrollToCaretInTextView:self.logText animated:NO];} 

이 참고 문헌이 방법 :

- (void)scrollToCaretInTextView:(UITextView *)textView animated:(BOOL)animated 
{ 
    CGRect rect = [textView caretRectForPosition:textView.selectedTextRange.end]; 
    rect.size.height += textView.textContainerInset.bottom; 
    [textView scrollRectToVisible:rect animated:animated]; 
} 

가 어떻게이 내 알림을 참조 할 수 있습니다 내 textViewDidChange에서

, 나는 커서가보기에 있는지 확인하기 위해 약간의 텍스트가 scrollToCaretInTextView 키보드가 올라 갔을 때 CGRect를 변경할 수 있습니까? 이제 커서가 키보드 아래에있을 때 인식하지 못합니다.

나는이 문제를 해결하려고 노력했지만, 키보드 높이를 가져와야하고 NSNotificaiton이 아니기 때문에이 방법에이 방법을 적용하는 방법을 모르겠습니다.

답변

2
  1. 키보드 가져 오기 알림을 받으려면 애니메이션 상수 (프레임, 기간, 곡선)를 가져올 수 있습니다.이를 사용하여 scrollview 인세 트를 설정할 수 있습니다.

  2. 귀하의 키보드 keyboardDidAppear Notification (키보드 애니메이션 이후)에서 - scrollToCaretInTextView 메소드를 호출하십시오. 텍스트 뷰로 스크롤하고 싶다면 [scrollView scrollToRectVisible : textview.frame]

과 같이 간단하게 호출해야합니다.
0

기본적으로 .h로 선언 한 다음 UIKeyboardDidShowNotification을 사용하여 키보드가 열리면 float 값을 변경하고 scrollToCaretInTextView 메소드에서 대신 float를 사용하게 할 수 있습니까?