Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSTextView的疯狂字体问题_Cocoa_Macos_Fonts_Nstextview_Core Text - Fatal编程技术网

Cocoa NSTextView的疯狂字体问题

Cocoa NSTextView的疯狂字体问题,cocoa,macos,fonts,nstextview,core-text,Cocoa,Macos,Fonts,Nstextview,Core Text,目前,我正在使用NSTextView进行字体度量。我希望这里的一位开发者能透露出一些情况 使用默认NSTextView中的Myriad Pro(从IB拖动并在新项目中运行),您可以得到以下结果: 请注意,选定的矩形如何与插入点具有相同的高度 现在查看页面中的行为: 请注意,选定的矩形与常规文本视图版本非常相似,但插入点高度实际上更能反映字体(而且更小!) 奇怪 我为什么在乎?以下是我与Helvetica和Myriad的应用程序屏幕: 请注意,在这两种情况下,轮廓符号与插入点高度完全居

目前,我正在使用NSTextView进行字体度量。我希望这里的一位开发者能透露出一些情况

使用默认NSTextView中的Myriad Pro(从IB拖动并在新项目中运行),您可以得到以下结果:

请注意,选定的矩形如何与插入点具有相同的高度

现在查看页面中的行为:

请注意,选定的矩形与常规文本视图版本非常相似,但插入点高度实际上更能反映字体(而且更小!)

奇怪

我为什么在乎?以下是我与Helvetica和Myriad的应用程序屏幕:

请注意,在这两种情况下,轮廓符号与插入点高度完全居中。这些符号实际上是子视图,不在文本流中。请注意页面中的这些符号。无数年来,他们一直处于中心位置。很明显,苹果意识到了一些问题,并加以解决。知道他们做了什么吗


谢谢

这不是苹果的错误,而是你的假设。这是字体度量和行高的函数。插入点取整个行高;绘制的字体部分没有


我以为几天前我指的是你。无论哪种方式,您都需要彻底理解此主题,以便确定在何处绘制点。

对于页面,Myraid pro的插入点小于整行高度。这正是我所困惑的。目前,如果我将点视图设置为与封口高度相同的大小,并将其从glyph rect偏移(baselineoffset-capheight),这似乎是可行的。我只是想知道苹果是如何清理它们的插入点的。这一点很好,但你不能真正去看页面的实现,因为它的UI做了很多自定义的东西。您需要查看TextEdit的行为,因为它使用stock NSTextView。如果看到将来的NSTextView更新在绘制插入点时忽略线高度,我不会感到惊讶,但我也不会屏住呼吸。:-)