我有一个NSTextView,我想控制高亮/选择的绘图。任何人都知道我必须覆盖哪种方法,所以我可以控制在选择矩形中绘制什么?
答案 0 :(得分:0)
您没有指定要绘制的内容,因此要直接给出答案并不容易。
如果它只是一个属性字符串(字体,样式,颜色,背景),你不需要任何花哨的东西,只需要寻找NSAttributedString。有-setSelectedTextAttributes:
和委托方法-textViewDidChangeSelection:
通常,如果您没有充分的理由,则不应将NSTextView子类化。只需使用通常的委托机制,您几乎可以做任何事情。
如果它是非常自定义的东西,则有多种可能性,具体取决于您是否要自定义选择(-setSelectedRange:
)绘制叠加视图(获取selectedRange的帧)或使用低级别进行混乱布局引擎(-layoutManager
)。这真的取决于。
答案 1 :(得分:0)
如果您不想使用标准属性突出显示文本,例如使用CALayer,您可以从NSTextView的layoutManager获取包含选择的rects。