Я создаю приложение (рабочий стол), которое является менеджером макета рекламы. Размеры из шаблона Indesign, с которым я работаю, указаны в дюймах. Например, журнал составляет 8х10,5 дюймов. Таким образом, чтобы дать пользователю представление о главной странице, я размещаю 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?