在NSScrollview中更改标尺的测量单位

时间:2016-12-26 16:28:57

标签: objective-c xcode cocoa interface-builder

我正在尝试制作绘图应用程序。所以我有一个NSScrollView的子类,用于显示标尺。

[self setHasHorizontalRuler: true];
[self setHasVerticalRuler:YES];
[self setRulersVisible:true];
[self setAutoresizesSubviews:YES];

问题是标尺的数字与我用来绘制的单位数不同。这里我想绘制的点是(0,0)(22,12)和(5,7)

enter image description here

我知道有一个寄存器测量单元和NSRulerView的集合以及一些默认单元,但我找不到默认单元,或者我如何在NSScrollView类中使用它的任何示例。我应该将每个坐标乘以常数吗?在那种情况下,那是什么常数?

1 个答案:

答案 0 :(得分:1)

registerUnitWithName:abbreviation:unitToPointsConversionFactor:stepUpCycle:stepDownCycle:类方法的描述中列出了默认单位,可以从属性measurementUnits找到当前标尺单位。

说明会告诉您每个预定义单位名称的点/单位。绘图视图的测量单位是点,因此以标尺单位绘制将获取您的位置,并将每个坐标乘以适当标尺(水平/垂直)的measurementUnits的点/单位。例如。考虑您的位置(5, 7),标尺单位设置为厘米,然后积分/单位为28.35,您的位置为(141.75, 198.44)分。

HTH