pap*_*apr 0 cocoa substring highlighting nsview nstextfield
如果你想NSTextField在屏幕截图(Tweetie.app)上为特定的子串实现突出显示,你会怎么做?:)
Tweetie链接突出显示http://qkpic.com/88c61
谢谢你的帮助!
对于NSTextField,请注意它是执行绘图的NSTextFieldCell.你想要覆盖-drawInteriorWithFrame:inView:并自己做字符串绘制.挑战在于找到绘制子串的矩形(如果包裹范围,则多于一个).您最终将不得不使用NSLayoutManager和NSTextStorage容器.
最好使用NSTextView.相关的NSLayoutManager和NSTextStorage组件已经预先组装,您可以免费获得许多其他功能.最重要的是,有一个方便的 - [NSTextView drawViewBackgroundInRect:]方法,所以你不必子类化任何东西.您只需询问文本视图的布局管理器和文本存储,然后询问它是否为给定范围的矩形.有关详细信息,请参阅文本系统概述和链接的文档.
要有效地查找有趣的子字符串,您可以使用自定义属性(或内置的属性,如NSLinkAttributeName)作为有趣的范围.