相反,我已经覆盖了drawInteriorWithFrame:inVIEw:它工作得很好 – 我可以在单元格中绘制我想要的东西.然而,问题是我必须自己绘制所有内容,失去我正在扩展的NSCell类型的功能 – 例如NSTextFIEldCell显示文本的能力:
自定义绘制的突出显示
但是,我只想重绘背景(突出显示),并保留使用扩展单元格的主要功能的能力:
当然,我也可以自己绘制文本,但我希望有一种更简单的方法.
任何帮助深表感谢.
解决方法 感谢@BavarIoUs的帮助,我已经设法解决了这个问题.我的扩展NSTextFIEldCell类实现现在包含:-(NScolor *)highlightcolorWithFrame:(NSRect)cellFrame inVIEw:(NSVIEw *)controlVIEw { return nil;}- (voID)drawWithFrame:(NSRect)cellFrame inVIEw:(NSVIEw *)controlVIEw { if ([self isHighlighted]) { // Draw highlight background here } [super drawInteriorWithFrame:cellFrame inVIEw:controlVIEw];}
关键是要确保为highlightcolorWithFrame返回nil:inVIEw:停止drawInteriorWithFrame:inVIEw:绘制背景但仍然调用它来绘制主要内容(在本例中为文本).
总结以上是内存溢出为你收集整理的可可 – NSCell自定义亮点全部内容,希望文章能够帮你解决可可 – NSCell自定义亮点所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)