MonoMac事件 - 更改NSTable行的颜色

时间:2012-04-21 13:19:28

标签: c# nstableview monomac

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

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

如何使这些活动有效?

谢谢!

2 个答案:

答案 0 :(得分:1)

不确定你是否解决了这个问题,但对于遇到此问题的其他人来说,解决办法就是添加一个类似于tableview示例的观察者,即

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

然后覆盖观察值方法

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

这样可行,但NSTableviewBinding示例使用了不同的方法,但这对我不起作用。

答案 1 :(得分:0)

在AwakeFromNib中注册观察者就像这样

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

然后处理选择更改

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