【问题标题】:NSFont Height For DrawingNSFont 绘图高度
【发布时间】: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


【解决方案1】:

请参阅 Cocoa 文档中的 Font Handling。向下滚动到“查询字体指标”:这清楚地显示了如何使用不同的指标,如下降、上升和前导。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2022-01-15
    • 1970-01-01
    • 2015-10-31
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多