MonoMac 事件 - 更改 NSTable 行的颜色

本文关键字:颜色 NSTable 更改 事件 MonoMac | 更新日期: 2023-09-27 18:31:55

我正在尝试通过订阅WillDisplayCell事件来更改NSTableView中的行颜色。首先,此事件永远不会引发。其次,NSTableView 中的字段不再可选,因此功能被破坏。对于不起作用的 SelectionChanged 事件,可以观察到相同的行为。

//NSTableView table
table.SelectionDidChange += SelectionChanged;
table.WillDisplayCell += WillDisplay;

如何使这些活动发挥作用?

谢谢!

MonoMac 事件 - 更改 NSTable 行的颜色

不确定您是否解决了这个问题,但对于遇到此问题的其他任何人,解决方案是添加一个类似于表视图示例的观察者,即

arrayController.AddObserver(this,new NSString("selectionIndexes"),NSKeyValueObservingOptions.New,IntPtr.Zero);

然后覆盖观察值方法

public override void ObserveValue (NSString keyPath, NSObject ofObject, NSDictionary change, IntPtr context)
{
...
}

这有效,但NSTableviewBinding示例使用不同的方法,但这对我不起作用。

在 AwakeFromNib 中像这样注册观察者

NSNotificationCenter.DefaultCenter.AddObserver (this, new Selector ("selectionChanged"), "NSTableViewSelectionDidChangeNotification", yourTableView);

然后像这样处理选择更改

[Export("selectionChanged")]
public void SelectionDidChangeNotification(NSObject o){
    ...
}