Je suis en train de créer une application (desktop) qui est un gestionnaire de mise en page publicitaire. Les mesures du modèle Indesign avec lequel je travaille sont en pouces. Par exemple, le magazine fait 8x10.5 pouces. Pour donner à l'utilisateur une vue de la page du magazine, je place un NSScrollView sur la fenêtre principale et j'utilise une conversion de 72 (pixels par pouce), puis j'affiche les règles, comme suit :
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];
Cela fonctionne bien mais les règles sont en pouces et sont un peu fausses.
Remarquez également que dans l'image, il y a un rectangle violet qui commence en haut de l'écran et qui n'est pas centré sur la vue. Il s'agit d'une sous-vue de NSScroll qui est censée représenter les marges de la page. Il est également décentré.
//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];
Il est évident que je fais quelque chose de mal dans mes conversions/placements. Quelqu'un peut-il me corriger ? De plus, existe-t-il un moyen d'aligner le 0,0 de la règle avec les coordonnées x=0, y=0 de la vue ?