我们如何在Cocoa中测量文本的可见边界?

时间:2012-08-01 19:29:23

标签: objective-c macos cocoa text fonts

下面列出的所有方法都没有给出Cocoa中文本的确切可见边界。我们如何获得?

  • NSString的{​​{1}}
  • boundingRectWithSize:options:attributes:的{​​{1}}
  • NSAttributedString的{​​{1}}

为了说明这一点,here's a screenshot使用了上面第二种方法的结果,如this sample code snippet所示。

2 个答案:

答案 0 :(得分:4)

实际上,从印刷的角度来看,框是正确的,但字体超出是自己的约束。您可以尝试使用字形边界而不是印刷边界的选项NSStringDrawingUsesDeviceMetrics

答案 1 :(得分:1)

这是我编码的解决方案。我们非常欢迎任何改进建议 代码段:http://pastebin.com/qJMKwvau
截图:http://ScrnSht.com/jskyqs