3

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

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

如何使这些事件发挥作用?

谢谢!

4

2 回答 2

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 示例使用了不同的方法,但这对我不起作用。

于 2012-08-08T00:39:41.227 回答
0

在 AwakeFromNib 像这样注册观察者

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

然后像这样处理选择更改

[Export("selectionChanged")]
public void SelectionDidChangeNotification(NSObject o){
    ...
}
于 2014-05-13T16:24:25.197 回答