2014-01-23 1 views
0

사용자 지정 NSView 하위 클래스가 있고이를 NSScrollView에 넣었습니다. 기본 사항이 정상적으로 작동하고 있습니다. 항상 사용 가능한 공간의 전체 너비를 차지하므로 해당 제약 조건은 스크롤보기의 전체 너비를 차지합니다. 얼마나 많은 수직 공간을 차지하는지는 표시해야하는 데이터의 양에 따라 달라 지므로 수직으로 만 스크롤 할 수 있습니다. 그게 다 훌륭해.전체 표시 공간을 차지하는 NSScrollView의 사용자 지정 NSView

사용자 정의보기가있는 NSScrollView보다 공간이 덜 필요하면 보이는 영역을 채우도록 확장되지 않습니다. 보이는 영역의 적합도보다 데이터가 적은 경우에는 아래로 확장하여 공간을 드래그 앤 드롭 대상으로 사용할 수 있도록해야합니다.

  • "허깅 우선 순위"를 변경하려고 시도했습니다. NSClipView 아래쪽의 아래쪽을 유지하기 위해 제약 조건을 추가하려고 시도했습니다. 이 문제를 해결하기위한 제약 기반 솔루션을 생각해 낼 수는 없습니다 (가능성을 배제하지는 못했지만).

  • 나는 NSScrollView 크기가 변경 될 때 알림을 잡기했는데, 너무 작다 경우 사용자 지정보기의 프레임을 조정하지만, 한 (레이아웃 시스템이 모든 레이아웃을 수행하는 동안은 그 현재 프레임을 변경할 수 있습니다 아마도 때문에 나중에) 나는이 작품을 만들 수없는 것 같습니다.

그것은 그렇지 않으면 너무 짧은 것마다 가시 영역의 바닥으로 확장 같은 있다는 NSScrollView에 뷰를 추가하기위한 트릭이 있습니까? 그것은 아주 간단해야만하는 것처럼 보입니다. 나는 전에 수동으로 모든 것을 -setFrame이라고 부릅니다. 그러나 일단 autolayout 세계로 이동하면 그 접근은 멈추게됩니다.

+0

높이 제한 조건 "parentView.height> = parentView.height"를 추가하려고 시도 했습니까? parentView가 클립 뷰인 경우? 나는 당신과 비슷한 문제를 가지고 있었고 다음은 나를 위해 일했다. myView.width> = clipview.width, myview.height> = clipview.height; 및 IB 오류 제거 : myview.centerXY = clipview.centerXY (빌드시 제거), myview의 intrinsicSize에 대한 자리 표시 자 설정 –

답변

0

귀하의 제약 조건과 콘텐츠 포옹 및 내용 압축이 실제로 어떻게되는지 알지 못하 ... 수퍼 뷰에> = 제약 조건이있는 하나 이상의 가장자리가 포함 된 콘텐츠 포옹이 있지만 우선 순위를 조정해야 할 수 있습니다. 사용자 정의보기 클래스에 intrinsicContentSize를 구현했는지 확인해야 할 수도 있습니다. 이는 사용자가 원하는 내용을 포옹 및 압축에 알려줍니다.

+0

제약 조건은 모두 기본값입니다 (예 : new Xcode Cocoa app). NSScrollView 창에서 새 NSView 서브 클래스를 만들고, 문서 뷰를 해당 클래스로 설정하고 실행하십시오. 문서보기는 스크롤 뷰 ('NSRectFill ([self bounds])'로 그걸 로깅하거나,'intrinsicContentSize'를 가지고 있고 수직 포옹 우선 순위 1을 가지고 있음에도 불구하고) . – Lonelyisland

관련 문제