2012-04-21 57 views
3

我試圖通過訂閱WillDisplayCell事件來更改NSTableView中的行顏色。 首先,這個事件從未被提出。 其次,NSTableView中的字段不再可選,因此功能被破壞。 對於不起作用的SelectionChanged事件,可以觀察到相同的行爲。MonoMac事件 - 更改NSTable行的顏色

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

如何使這些事件工作?

謝謝!

+0

你提到同樣注意到了同樣的問題只能用SelectionDidChange。 – eaglestorm 2012-08-07 23:49:36

回答

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示例使用了一種不同的方法,但是這對我不起作用。

+0

誰是arrayController? – 2014-05-13 15:51:49

0
在AwakeFromNib寄存器觀察者

像這樣

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

然後處理選擇的變化,像這樣

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