NSTextView lineHeightMultiple绘图问题

时间:2011-06-03 21:20:14

标签: cocoa nstextview textedit nslayoutmanager

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

  1. 以富文本模式打开TextEdit
  2. 选择Courier 14作为字体
  3. 将行高设置为1.4
  4. 插入一堆文字
  5. 用鼠标选择文本的一部分,直到顶部
  6. 开始减少选择(向下移动鼠标)
  7. 在某些行中,选择并未完全清除,留下1px水平神器(见screnshot)。这种情况也会出现在不同的字体中,字体大小为lineHeightMultiple值(尽管不是全部)。

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

    谢谢,
    鲁本

    screenshot

1 个答案:

答案 0 :(得分:-1)

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

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

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

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