2012-05-01 3 views
8

NSScrollView에 포함 된 뷰 기반 NSTableView가 있습니다. 그것은 x 픽셀의 높은 번호를 사용자 지정 세포 있습니다. NSScrollView는 서브 뷰의 패널과 동일한 크기입니다. 테이블에있는 행의 수에 따라 전체 NSTableView의 크기를 조정하고 싶습니다.테이블의 행 수에 따라 NSTableView 또는 NSScrollView 크기 조정

크기 조정을 제외한 모든 기능이 작동합니다. IB에서 스크롤 뷰의 크기를 수동으로 조정하면 원하는 효과가있는 것처럼 보일 수 있지만 NSSrollView에는 NSView에 setFrame이있는 것처럼 뷰의 크기를 조정하는 클래스 메서드가없는 것 같습니다. scollview, tableview, both 또는 다른 것을 크기 조정해야합니까? NSScrollView setFrame 메서드 또는 비슷한 누락 된 있습니까?

감사합니다.

+0

왜이 작업을 수행해야합니까? 인터페이스 빌더에'NSTableView'를두면 이미 스크롤보기 안에 있고 모든 것이 관리됩니다. –

답변

4

프로그래밍 방식으로 시도하기 전에 개요보기의 자동 크기 조정 마스크가 nib 파일에 올바르게 설정되어 있는지 확인하십시오. 윤곽선보기 (및 해당 스크롤보기)가 항상 안에있는 창과 동일한 크기로 유지되기를 원하는 것처럼 들립니다. 즉

enter image description here

, 항상 같은 크기로 유지하도록 설정되어 기본적으로

, 당신은 창에 놓습니다 NSScrollView/NSOutlineView 콤보의 자동 크기 마스크는 다음과 같습니다 창 크기를 얼마나 크게 할지라도 상관 없습니다. 에 빨간 점선있을 곳

enter image description here

그렇게하려면 흰색 자동 크기 상자를 클릭 :

은 무엇 당신이 원하는 것은 아래 이미지처럼 보이게하기 위해 자동 크기 마스크를 변경하는 것입니다 그것을 빨간 선으로 토글합니다. 그런 식으로 구성된 후에는 스크롤보기 (및 표보기)가 항상 자동으로 크기가 조정되어 창과 동일한 크기가됩니다.

Lion의 새로운 " 자동 레이아웃 "기능을 사용하지만 더 많은 경험이있는 사람에게 맡겨야합니다.

+0

나는 IB에서 이것을 할 수 있을지 전혀 몰랐다! 그런 철저한 대답에 감사드립니다. – rick

0
scrollview.frame = CGRrectMake(x, y, w, h); 
1

스크롤 할 필요가없는 모든 행을 scrollview에 넣고 싶을 때 스크롤보기는 할 수있는 창 /보기의 일부일뿐입니다.

[[myTableView enclosingScrollView] setFrame:newFrameRect]; 
+0

이 기술을 시도했지만 테이블이 시각적으로 업데이트되지 않았습니다. 다른 명령을 사용해야합니까? –

관련 문제