Cocoa NSTextView中的自定义图形选择

Cocoa NSTextView中的自定义图形选择,cocoa,selection,nstextview,Cocoa,Selection,Nstextview,我有一个NSTextView,我想在其中控制高亮显示/选择的绘图。有人知道我必须覆盖哪种方法才能控制在选择矩形中绘制什么吗?您没有指定要绘制什么,因此很难给您一个直接的答案 如果它只是一个属性字符串(字体、样式、颜色、背景),您不需要任何花哨的东西,只需查找NSAttributedString即可。有两种方法,如-setselectedtexttributes:和委托方法-textViewDidChangeSelection: 通常,如果没有很好的理由这样做,就不应该将NSTextView子类化

我有一个NSTextView,我想在其中控制高亮显示/选择的绘图。有人知道我必须覆盖哪种方法才能控制在选择矩形中绘制什么吗?

您没有指定要绘制什么,因此很难给您一个直接的答案

如果它只是一个属性字符串(字体、样式、颜色、背景),您不需要任何花哨的东西,只需查找NSAttributedString即可。有两种方法,如
-setselectedtexttributes:
和委托方法
-textViewDidChangeSelection:

通常,如果没有很好的理由这样做,就不应该将NSTextView子类化。您几乎可以通过利用通常的委托机制来做任何事情


如果是非常定制的内容,则有多种可能性,这取决于您是否要自定义选择(
-setSelectedRange:
)绘制覆盖视图(获取所选范围的框架)或使用低级布局引擎(
-layoutManager
)。这取决于具体情况。

如果您不想使用标准属性来突出显示文本,例如使用CALayer,您可以从NSTextView的layoutManager获取包含所选内容的矩形