macos – NSTableCellView中的NSTextField

macos – NSTableCellView中的NSTextField,第1张

概述我有一个基于NSTableView的视图,带有自定义的NSTableCellView.此自定义NSTableCellView具有多个标签(NSTextField). NSTableCellView的整个UI都是在IB中构建的. NSTableCellView可以处于正常状态并处于选定状态.在正常状态下,所有文本标签应为黑色,在选定状态下,它们应为白色. 我该怎么办呢? 实现这一目标的最简单方法可能 我有一个基于NStableVIEw的视图,带有自定义的NStableCellVIEw.此自定义NStableCellVIEw具有多个标签(NSTextFIEld). NStableCellVIEw的整个UI都是在IB中构建的.

NStableCellVIEw可以处于正常状态并处于选定状态.在正常状态下,所有文本标签应为黑色,在选定状态下,它们应为白色.

我该怎么办呢?

解决方法 实现这一目标的最简单方法可能是继承NSTextFIEld并覆盖子类中的drawRect:方法.在那里,您可以确定当前是否使用此代码选择包含NSTextFIEld实例的NStableCellVIEw实例(我使用的是NSOutlineVIEw,但它也适用于NStableVIEw):

BOol selected = NO;ID tableVIEw = [[[self supervIEw] supervIEw] supervIEw];if ([tableVIEw isKindOfClass:[NStableVIEw class]]) {    NSInteger row = [tableVIEw selectedRow];    if (row != -1) {        ID cellVIEw = [tableVIEw vIEwAtColumn:0 row:row makeIfNecessary:YES];        if ([cellVIEw isEqualTo:[self supervIEw]]) selected = YES;    }}

然后像这样绘制视图:

if (selected) {    // set your color here    // draw [self stringValue] here in [self bounds]} else {    // call [super drawRect]}
总结

以上是内存溢出为你收集整理的macos – NSTableCellView中的NSTextField全部内容,希望文章能够帮你解决macos – NSTableCellView中的NSTextField所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存