2

通过设置在文本视图中使用的 NSParagraphStyle 的 lineHeightMultiple ,我在选择文本时会得到绘图工件。这在 TextEdit 中是可重现的。进一步来说:

  1. 以富文本模式打开 TextEdit
  2. 选择 Courier 14 作为字体
  3. 将行高倍数设置为 1.4
  4. 插入一堆文本
  5. 用鼠标选择文本的一部分直到顶部
  6. 开始减少选择(向下移动鼠标)

在某些行中,选择没有完全清除,留下一个 1px 的水平伪影(见截图)。这也发生在不同的字体中,字体大小为 lineHeightMultiple 值(尽管不是全部)。

有没有人经历过或者知道为什么会这样?

谢谢,
鲁本

截屏

4

2 回答 2

-1

我在自己的代码中通过将段落样式添加到选定的文本属性并舍入行高来解决此问题。

在此处输入图像描述

于 2016-04-11T09:15:15.203 回答
-1

我有一个与 NSTextAttachment 类似的问题,它的高度大于默认行距。我可以通过将此行添加到我的 NSTextViewDelegate 来缓解它。

func textViewDidChangeSelection(_ notification: Notification) {
    // will fix artifacts after releasing mouse button
    self.textView.needsDisplay = true
}

我还尝试在自定义 NSTextView 类中的 mouseDragged 期间创建更大的重绘区域,但不幸的是 NSTextView 处理这个完全不同,因此永远不会调用 mouseDragged。

段落样式的技巧对我不起作用。

于 2021-03-02T21:21:37.230 回答