4

広告レイアウト マネージャーであるアプリ (デスクトップ) を構築しています。私が使用している Indesign テンプレートの測定値はインチです。たとえば、マガジンは 8x10.5 インチです。したがって、ユーザーに mag ページのビューを提供するために、メイン ウィンドウに NSScrollView を配置し、72 (ピクセル/インチ) の変換を使用して、ルーラーを次のように表示しました。

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];

これは問題なく機能しますが、定規はインチ単位で表示され、少しずれています。

ここに画像の説明を入力

また、画像には、画面の上部から始まり、ビューの中心から外れている紫色の四角形があることに注意してください。これは 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 の座標に揃える方法はありますか?

4

1 に答える 1

3

関連する NSRulerView の適切なプロパティを試してみてください。

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 クラスのドキュメントのドキュメントを参照してください。

于 2011-08-22T21:11:08.267 に答える