可可 – NSCell自定义亮点

可可 – NSCell自定义亮点,第1张

概述我正在尝试子类化NSCell来绘制自定义背景突出显示.文档似乎暗示了最重要的亮点:withFrame:inView:应该允许我这样做但是从不调用该方法. 相反,我已经覆盖了drawInteriorWithFrame:inView:它工作得很好 – 我可以在单元格中绘制我想要的东西.然而,问题是我必须自己绘制所有内容,失去我正在扩展的NSCell类型的功能 – 例如NSTextFieldCell显示 我正在尝试子类化NSCell来绘制自定义背景突出显示.文档似乎暗示了最重要的亮点:withFrame:inVIEw:应该允许我这样做但是从不调用该方法.

相反,我已经覆盖了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自定义亮点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1015172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存