【问题标题】:NSTableView Binding and ObserversNSTableView 绑定和观察者
【发布时间】:2011-12-17 20:33:36
【问题描述】:

我正在尝试使用绑定向 NSTableview 添加新行。根据过去的帖子,我被指示在数组控制器上添加对象,并且 KVO 应该处理视图的通知。不过,

我收到以下错误:

An -observeValueForKeyPath:ofObject:change:context: message was received but not handled.
Key path: accountArray
    Observed object: <AppDelegate: 0x10011e3b0>
Change: {
     indexes = "<NSIndexSet: 0x102915ba0>[number of indexes: 1 (in 1 ranges), indexes: (2)]";
     kind = 2;
}

我已经在我的 App Delegate 中添加了这个观察者:

[self addObserver:self forKeyPath:@"accountArray" options:0 context:@"myContext"];

我也尝试过实现observerValueforKeyPath,但是当我调试我的代码时,从来没有达到这一点。

我做错了什么?

【问题讨论】:

    标签: cocoa model-view-controller nstableview key-value-observing


    【解决方案1】:

    你必须实现那个方法:

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
    

    【讨论】:

    • 我还是 KVO 的新手,但我最终做的是为我的添加按钮创建一个 IBOutlet 并在我的 NSMutable 数组中实现一个新对象的添加。然后我实现了 [self willchangeValueforKey] 和 [self didChangeValueForKey] ,一切似乎都奏效了。我不确定为什么,但可能是因为我的 arrayController 已经符合 KVO 标准?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    相关资源
    最近更新 更多