2011-08-22 2 views
4

광고 레이아웃 관리자 인 앱 (데스크톱)을 구축 중입니다. 내가 작업하고있는 Indesign 템플릿의 측정 값은 인치입니다. 예를 들어 잡지는 8x10.5 인치입니다. 그래서 사용자에게 기본 창에 나는 NSScrollView를 배치 탄창 페이지의 뷰를 제공하고 72 (인치당 픽셀 수)의 변환을 사용하여 다음 통치자를 표시하는, 그래서 같은 :이 작품을Objective-C/XCode 측정 질문

displayPageRect=NSMakeRect(400.0, 70.0,72*8.125,72*10.5); 
displayPage = [[NSScrollView alloc] initWithFrame:displayPageRect]; 

//set up the rulers display 
[displayPage setRulersVisible:YES]; 
[displayPage setHasVerticalRuler:YES]; 
[displayPage setHasHorizontalRuler:YES]; 

//set up border color and width 
[displayPage setBorderType:NSLineBorder]; 

//display the displayPage on the screen 
[[mainWin contentView] addSubview:displayPage]; 

괜찮아요.하지만 통치자들은 인치로 나옵니다.

enter image description here

또한, 통지는 이미지에서 화면 상단을 시작하고보기에 중심 꺼져 보라색 RECT이있다. 이것은 NSScroll의 하위 뷰이며 페이지의 여백을 나타내는 것으로 가정합니다. 이것은 또한 꺼져 있습니다.

//make a new page element for page borders 
PageElements* pageBorders = [PageElements new]; 
NSColor* borderColor = [NSColor purpleColor]; 
[pageBorders setColor:borderColor]; 
[pageBorders initWithFrame:NSMakeRect(72*.313, 72*.375, 72*7.499, 72*9.875)]; 
[[displayPage contentView] addSubview:pageBorders]; 

분명히 내 전환/게재 위치에 문제가 있습니다. 누군가 날이 문제를 해결할 수 있습니까? 또한 어쨌든 눈금자의 0,0을 x = 0, y = 0, 뷰의 좌표와 일렬로 맞 춥니 다? 관련 NSRulerView의 해당 특성을 실험

답변

3

시도 : 측정 단위를 설정할 때 사용하는 단위가 등록되어야 함을

NSRulerView *hRuler = [displayPage horizontalRulerView]; 
[hRuler setMeasurementUnits:@"Points"]; // User whatever registered units you want here 
[hRuler setOriginOffset:5.0]; // Experiment with this number to see way works for you 

참고. 등록 된 몇 가지 기본값이 있거나 직접 사용할 수 있습니다. 눈금자 뷰를 구성 할 수있는 다양한 방법에 대한 자세한 내용은 NSRulerView 클래스 설명서의 설명서를 참조하십시오.

+0

감사합니다. Tim, 저는 그것을 인치로 변경했으며 규칙이 지금 일치합니다. 기본 설정이 무엇인지 잘 모릅니다. 또한 저는 어제 상쇄 작업을하고 있었고 수직 눈금자의 경우 이것을 다음과 같이 변경했습니다 - [vertRuler setOriginOffset : 754.0]; 0 점을 눈금자의 맨 위로 이동했지만 아래 숫자는 모두 음수입니다. 통치자를 뒤집을 방법이 없습니까? – PruitIgoe

+0

Document NSView 하위 클래스의 isFlipped 메소드에서 YES를 반환하려고합니까? –