【发布时间】:2012-08-18 19:22:18
【问题描述】:
当我为 NSFont 设置 pointSize 时,输出文本不会达到点大小的确切高度,例如,当我将其设置为 20.0 时,大写 B 的输出文本是 17.0 像素高。由于我使用它在 NSView 上绘制文本,这给我带来了一些测量问题。 有没有准确的方法来测量文字的最大高度?
我正在用这种方法绘制字符串: [stringValue drawInRect:stringRect withAttributes:stringAttributes];
问候
【问题讨论】:
-
字体大小以磅为单位,而不是像素。 17pt 字体不是 17 像素高。
-
感谢您的回复。如何将它们转换为像素?
-
公式很简单:
pixel = point * dpi / 72,其中dpi是当前屏幕的dpi。 -
没那么简单,因为没有考虑字距调整和字体变化。
-
监视器 DPI 通常为 72,因此它会自动变为 17 像素高。
标签: objective-c cocoa core-graphics nsview nsfont