2013-05-09 2 views
0

스크롤 및 UITextField unhiding 여기에 여러 게시물을 보았다 및 UITextView에 대해 동일한 코드가 작동해야한다고 생각했지만 그 경우가 아닌 것 같습니다. 내가 만난 첫 번째 문제는 내가 가지고있는 샘플 앱이 가로 방향 만 지원하는 iPad 앱이라는 것입니다. 알림에서 반환 된 키보드 크기는 키보드의 높이와 너비가 역전되었습니다.이상한 행동 UIScrollView 키보드로 숨겨진 UITextView

다음으로 scrollview를 사용하여 textview를 스크롤 할 수 있지만 모든 텍스트가 표시되지는 않으며 textview의 양은 실제로 textview에서 탭하는 위치에 따라 다릅니다. 커서가 원하는 위치가 아닌 곳으로 스크롤하는 것과 같습니다.

다음은 현재 사용중인 코드입니다. 예제에서 취한 것이지만, 유일한 실제 변경 사항은 UITextField 대신 UITextView가 사용된다는 것입니다. 내가하는 유일한 일은 textview를 텍스트 필드로 대체하는 것이다.

- (void)keyboardWasShown:(NSNotification*)aNotification 
{ 
    NSDictionary* info = [aNotification userInfo]; 
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 
    UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.width, 0.0); 
    _myscrollview.contentInset = contentInsets; 
    _myscrollview.scrollIndicatorInsets = contentInsets; 
    CGRect aRect = self.view.frame; 
    aRect.size.height -= kbSize.width; 
    DebugLog(@"textview = %@", _textview); 

    if (!CGRectContainsPoint(aRect, _textview.frame.origin)) { 
     CGPoint scrollPoint = CGPointMake(0.0, _textview.frame.origin.y-kbSize.width); 
     [_myscrollview setContentOffset:scrollPoint animated:YES]; 
    } 
} 

답변

1

당신이 당신 UITextView의 상단으로 이동하고자하는 경우가

[textview scrollRectToVisible:CGRectMake(0,0,1,1) animated:YES]; 

하여 아래의 방법으로 장난 시도 것을 할 수 있습니다. 아마도 textView의 높이로 설정하십시오. 문제의 스크린 샷을 게시 할 수 있습니까?

- (void)textViewDidChangeSelection:(UITextView *)textView 
{ 
    [textView setSelectedRange:NSMakeRange(0, 0)]; 
} 
+0

아니요, 원하는 것은 UITextView를 완벽하게 볼 수있게하려는 것입니다. 내가 키보드를 숨길 때 UITextField 함께 제출 한 코드를 잘 작동하지만 UITextView 작동하지 않습니다. UITextView는 부분적으로 만 공개되며 밝혀지는 부분은 UITextView에서 탭한 부분에 따라 달라집니다. 뷰의 맨 꼭대기를 탭하면 UITextView의 일부만 밝혀집니다. UITextView의 맨 아래에서 탭하면 그 대부분이 밝혀집니다. UITextView 프레임의 원점이 탭 한 위치를 기반으로 변경된 것과 같습니다. – svjim

+0

textView.selectedRange. 그걸로 어지럽 혀보십시오. –

+0

MarkM이 textView.selectedRange를 가지고 노는 제안은 내가 찾고있는 답변을 제공했습니다. textView가 삽입 점을 원점으로 반환하고 뷰를 스크롤하여 원하는 전체 뷰가 아닌 삽입 점을 볼 수있게되었습니다. 그래서 위치를 textView.text.length로 설정하고 삽입 점으로 정의 된 길이를 0으로 설정하여 전체 textView가 스크롤되도록 표시되도록했습니다. – svjim