NSTextView中的自定义绘图选择

时间:2011-05-18 20:32:09

标签: cocoa selection nstextview

我有一个NSTextView,我想控制高亮/选择的绘图。任何人都知道我必须覆盖哪种方法,所以我可以控制在选择矩形中绘制什么?

2 个答案:

答案 0 :(得分:0)

您没有指定要绘制的内容,因此要直接给出答案并不容易。

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

等方法

通常,如果您没有充分的理由,则不应将NSTextView子类化。只需使用通常的委托机制,您几乎可以做任何事情。

如果它是非常自定义的东西,则有多种可能性,具体取决于您是否要自定义选择(-setSelectedRange:)绘制叠加视图(获取selectedRange的帧)或使用低级别进行混乱布局引擎(-layoutManager)。这真的取决于。

答案 1 :(得分:0)

如果您不想使用标准属性突出显示文本,例如使用CALayer,您可以从NSTextView的layoutManager获取包含选择的rects。