【问题标题】:MonoMac events - Changing Color of NSTable rowMonoMac 事件 - 更改 NSTable 行的颜色
【发布时间】:2014-06-04 05:03:46
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 也注意到与您提到的 SelectionDidChange 相同的问题。

标签: c# nstableview monomac


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

【讨论】:

  • 谁是arrayController?
【解决方案2】:

在 AwakeFromNib 中像这样注册观察者

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

然后像这样处理选择更改

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

【讨论】:

    猜你喜欢
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    相关资源
    最近更新 更多