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

Change measurement unit of Ruler in NSScrollview

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

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

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

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

默认单位在registerUnitWithName:abbreviation:unitToPointsConversionFactor:stepUpCycle:stepDownCycle:class方法的说明中列出,当前标尺单位可从属性measurementUnits.

描述告诉您每个预定义单位名称的 Points/Unit。绘图视图的测量单位是点,因此要以标尺单位绘制,请使用您的位置并将每个坐标乘以 Points/Unit 以获得相应标尺 (horizontal/vertical) 的 measurementUnits。例如。考虑您的位置(5, 7),标尺单位设置为厘米,然后 Points/Unit 为 28.35,您的位置 (141.75, 198.44) 以磅为单位。

HTH