NSStringDrawingUsesDeviceMetrics 标志是啥意思,我们如何使用它?

Posted

技术标签:

【中文标题】NSStringDrawingUsesDeviceMetrics 标志是啥意思,我们如何使用它?【英文标题】:What does the NSStringDrawingUsesDeviceMetrics flag mean and how do we use it?NSStringDrawingUsesDeviceMetrics 标志是什么意思,我们如何使用它? 【发布时间】:2012-08-06 08:19:02 【问题描述】:

这个问题与我在How do we measure visible bounds of text in Cocoa? 的评论有关。

这里有几个链接解释了标志的含义。Apple docsApple lists answer to a similar question

从上面,我猜想NSStringDrawingUsesDeviceMetrics 选项是为了获得文本的可见边界,但它似乎没有这样做。在输入(字体和字符串)中,我尝试给方法boundingRectWithSize:options:attributes: 提供标志时与未给出标志时相比,没有任何输出不同。我做错了什么还是 Cocoa 中的错误?

谢谢

【问题讨论】:

【参考方案1】:

谷歌这个猴子补丁

NS(Attributed)String+Geometrics

它相当可靠地解决了问题。

【讨论】:

一目了然代码无法理解。几天后会尝试并返回。谢谢。另外,您的意思是它是 Cocoa 中的错误吗? 问题是这个标志是什么意思。将一些随机类别放入程序中并不能解释该标志的作用。 @PeterHosey 你是对的。那将是我另一个问题的答案。感谢您的观看! @stackmonster 我注释掉了 NSLayoutManager (extra) 类别(从 git.io/oh98VQ 开始的 10 行)这给了我一个链接错误,否则似乎没有做任何有用的事情。它似乎给出了与网站上显示的相同的输出,但这也没有给出可见的边界,在尝试更大的字体时可以看到。请参阅ScrnSht.com/sakadu 以获取我在 48 pt 中为文本 Zapfino 获得的 Zapfino 字体的屏幕截图。我也用 Chalkduster 对其进行了测试,给出的界限也小于可见的界限。

以上是关于NSStringDrawingUsesDeviceMetrics 标志是啥意思,我们如何使用它?的主要内容,如果未能解决你的问题,请参考以下文章