2009-12-11 4 views
0

Apple의 TextSizingExample 에서처럼 NSTextView를 손으로 조립하려고하고있어 지루한 버그를 발견했습니다. TextSizingExample을 실행하고 "스크롤 텍스트 줄 바꾸기"모드를 선택하면 텍스트가 부분적으로 수직 스크롤 막대에 의해 숨겨집니다. 텍스트 컨테이너 및 텍스트보기의 크기 및 자동 크기 조정 마스크로 게임을 시도했지만 도움이되지 않았습니다.Handwired NSTextView 클리핑 버그

답변

1

문제는 VerticalScrollAspect 클래스의 스크롤 뷰 만들기에 대한 순진한 접근 방식에 있습니다.

scrollView = [[NSScrollView alloc] initWithFrame:[documentView frame]];

불행하게도,이 중요하다 둘 다 세로 스크롤 막대의 폭 또는 스크롤 뷰의 테두리 스타일, 고려하지 않습니다 다음 -containerView 방법에서, 다음 줄이 중히 여기다.

+0

감사합니다. Joshua, 도움이되었습니다. – Indoor

0

당신은 세 가지 구성 요소, 즉 포함 창 또는보기, 스크롤보기 및 스크롤보기 내부의 텍스트보기를 다루고 있습니다. scrollview는 그것이 표시 될 창이나 테두리의 프레임 또는 경계에 맞게 초기화되어야하며 textview는 scrollview의 내용 영역이 어디에 있는지만 알아야합니다. 따라서 :

NSScrollView *scrollView = [[[NSScrollView alloc] initWithFrame:[containingView bounds]] autorelease]; 

NSSize contentSize = [scrollView contentSize]; 
NSTextView *textView = [[[NSTextView alloc] initWithFrame:NSMakeRect(0, 
           0, 
           contentSize.width, 
           contentSize.height) 
      ] autorelease]; 
+0

확실히 사실이지만, 이것은 OP의 관심사 인 데모와 관련된 문제를 다루지 않습니다. 데모에서는 이러한 중첩 된 뷰가 생성되는 순서가 설정되어 스크롤 뷰가 다른 방향 대신 텍스트 뷰에 맞게 (순진하게) 크기가 지정됩니다. –