【问题标题】:NSTableView alternative row colors with NSArrayController使用 NSArrayController 的 NSTableView 替代行颜色
【发布时间】:2023-04-03 08:15:01
【问题描述】:

所以我将 NSArrayController 与我的 NSTableView 一起使用,我想显示自定义行颜色,即使 NSArrayController 没有任何对象。

通常没有 Cocoa 绑定,我可以像这样“欺骗”我的 numberOfRows:

var dataStore = [Person]()

func numberOfRowsInTableView(tableView: NSTableView) -> Int {
    if dataStore.count < 20 {
        return 20
    } else {
        return dataStore.count
    }
}

然后获取自定义行颜色...

func tableView(tableView: NSTableView, didAddRowView rowView: NSTableRowView, forRow row: Int) {
    if row % 2 == 0 { rowView.backgroundColor = NSColor.blueColor() }
    else { rowView.backgroundColor = NSColor.reColor() }
}

如何使用 Cocoa 绑定获得相同的空表视图效果?

【问题讨论】:

  • 后一种方法是委托方法,无论绑定如何,你仍然可以使用,真正替代了数据源方法
  • 是的,我知道,但即使没有任何数据,我也需要让它工作。而且 didAddRowView 只有在添加了一些数据后才有效。

标签: swift cocoa nstableview cocoa-bindings nsarraycontroller


【解决方案1】:

我不知道 mac 应用程序的代码,但在 ios 应用程序中,我可以通过 cellForRowAtIndexPath 轻松满足您的需求。你试过了吗?

【讨论】:

  • 还没有。我会尽快尝试。
  • 我对 iOS 了解不多,但我认为 OS X 并非如此。当我为表格视图选择交替行时,它们都是不同的颜色,如果我理解正确的颜色来自 @987654322 @。如果我能以某种方式改变它们,那就太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 2021-05-07
  • 2011-02-18
  • 1970-01-01
相关资源
最近更新 更多